我注意到使用MySQL的“非英语”(波兰语)字符存在问题。
查询“select”abcde'='ąbćdę'“返回”1“并且字符串不等于......
你可以帮帮我吗? :) thx !!!答案 0 :(得分:10)
对于utf8_general_ci,它们是相同的(除了ł,这不被MySQL视为错误),并且从5.6开始你也可以使用utf8_unicode_520_ci来正确处理所有波兰语字符。使用utf8_polish_ci将重音和非重音字符视为不同的字符。
select 'abcde'='ąbćdę' COLLATE utf8_polish_ci
>> 0
演示'不是错误'
select 'abcde'='ąbćdę' COLLATE utf8_general_ci
>> 1
select 'abcdel'='ąbćdęł' COLLATE utf8_general_ci
>> 0
请在此处查看错误报告:http://bugs.mysql.com/bug.php?id=9604
答案 1 :(得分:-3)
你可以在MYSQL查询中将Ł替换为L,将ł替换为l,如下所示:
SELECT REPLACE(REPLACE('abcdel', 'Ł', 'L'), 'ł', 'l') = REPLACE(REPLACE('ąbćdęł', 'Ł', 'L'), 'ł', 'l') COLLATE utf8_general_ci
>> 1
从现在起所有的变音字母都等于它们的非变音符号。