charset = UTF-8
CODEPAGE = 65001
MySql version: 5.0.92-enterprise-gpl-log
ADO.Version = 2.8
当我使用unicode字符进行搜索时,如下所示:
INSERT INTO table (utf8) VALUE ('♂')
SELECT utf8 FROM table WHERE utf8 = '♂' // \u2642
其中utf8
是VARCHAR归类utf8_unicode_ci
MySql返回0行。
删除CODEPAGE=65001
MySql返回1行。但是,Server.HTMLEncode现在返回奇怪的符号,现在utf8字符的长度大于>没什么大不了的。
修改
好的,现在我很困惑:这个查询有效:
SELECT utf8 FROM table WHERE CONVERT(utf8 USING latin1) COLLATE latin1_general_ci = '♂'
显然这很糟糕,它会忽略INDEX。
任何帮助?
答案 0 :(得分:1)
不要在ASP脚本中包含字符串文字,其字符数超出ASCII范围。脚本引擎解析器不执行多字节字符集。将ChrW与其他字符的Unicode值一起使用。