【发布时间】:2016-12-12 17:59:02
【问题描述】:
免责声明:
- 数据库是
ut8mb4_unicode_520_ci - 表格字段为
ut8mb4_unicode_520_ci
如何正确查询包含 dakuten 或 handakuten 日文字符的表字段? Dakuten.
目前,似乎返回了基本字符,即使在为tenten 版本运行查询时也是如此。
示例数据
给定 へ 和 ぺ。
还有ID: 199, post_title: 'へ';一行
场景 1
运行:
SELECT 'へ' = 'ぺ';
-- Returns 0. Correct
场景 2
运行:
SELECT ID, post_title
FROM wp_posts
WHERE post_title = 'へ';
-- Returns row 199. Correct
场景 3
但是,由于某种原因,当我运行此查询时,它仍然返回记录 199,注意不同的标题值。
运行:
SELECT ID, post_title
FROM wp_posts
WHERE post_title = 'ぺ';
-- Returns row 199. Incorrect
示例图片
一张图片会更好地解释(我只是使用联合来更好地在一个屏幕截图中显示所有内容):
是否有可靠的方法来处理这些角色?所有其他日文字符似乎都可以正常工作,只是 dakuten 版本仅在查询中被视为它们的基础。
【问题讨论】:
-
您是否使用了正确的排序规则?
-
我现在正在阅读。似乎 utf general 区分大小写,而 utf unicode 对日文字符不区分大小写。现在运行测试以查看交换是否有效
-
我认为某些 unicode 排序规则有些时髦:bugs.mysql.com/bug.php?id=79977
-
HEX('へぺ')是E381B8 E381BA;那是你的吗? -
我可以确认将其从
520交换到utf8_general_ci可以恢复预期的行为。但我不觉得这是一个很好的解决方案..
标签: mysql unicode utf-8 nscharacterset