ASP CODEPAGE 65001和Mysql 5 utf-8

时间:2012-03-14 10:11:03

标签: mysql asp-classic utf-8

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。

任何帮助?

1 个答案:

答案 0 :(得分:1)

不要在ASP脚本中包含字符串文字,其字符数超出ASCII范围。脚本引擎解析器不执行多字节字符集。将ChrW与其他字符的Unicode值一起使用。