0

我正在建立一个数据库来做一些语言分析,而日语假名给我带来了一些麻烦。

与到目前为止的其他问题不同,我不知道这本身就是一个编码问题。我已将联合设置为utf8_unicode_ci,从表面上看,它可以保存和回忆大部分内容。

然而,问题是当我进入相关的假名时,例如キ(ki)和ギ(gi)。出于排序目的,除非它们直接冲突,否则日语不会区分两者。例如:

  • ぎ (gi) 在きかい (kikai) 之前
  • きる (kiru) 在ぎわく (giwaku) 之前
  • き(ki)在ぎ(gi)之前

我认为这种行为是我问题的根源。从外部文件加载我的数据集时,我让它执行 SELECT 调用以验证尚未记录日语的特定读数。如果它已经存在,它将获取 ID,以便将其与词条配对;否则添加一个新条目并在之后配对。

在我把所有东西都放进去之后,我注意到的是,无论出现两个这样的相似读数,遇到的第一个读数都会被记录下来,如果出现,另一个读数会显示为误报。例如:

  • キョウ(kyou)首先出现,所以带有ギョウ(gyou)的角色改为与kyou配对
  • ズ (zu) 出现在 ス (su) 之前,所以同样更多的字符被错误匹配。

如果需要,我可以通过并手动对其进行排序,但我真正想做的是设置数据库以更严格地区分字符(例如,如果字符有两个不同的 UTF-8 代码点,请处理它们作为不同的字符)。有没有办法得到这种行为?

4

2 回答 2

2

您可以使用utf8_bin来获取通过 Unicode 代码点比较字符的排序规则。

排序规则还区分了utf8_general_ciキョウ 和 ギョウ。

于 2013-09-04T16:21:54.587 回答
1

保存到数据库时将其保存为二进制文件并在回调时将其更改为日语与我的阿拉伯语相同的问题

于 2013-09-04T16:18:09.293 回答