繁体   English   中英

ASP,MySQL和UTF-8

[英]ASP, MySQL and UTF-8

首先,我已经阅读了几乎所有关于此的主题。 我已经尝试了所有的建议,但我无法解决这个问题。

这就是事情。 我将Classic ASP和MySQL用于项目。 一切都很好。 如果我写(例子)Response.Write(“ĞŞÜÇÖİ”)它就像一个魅力。 但如果该字符串来自数据库,我会看到“ÄÅÜÇÃÄ°”而不是“ĞŞÜÇÖİ”。 当我用phpMyAdmin看这个时,没关系。

我使用Dreamweaver CS6。 我保存所有页面Unicode(UTF-8)。 我在一个包含文件中写了Session.CodePage = 65001,Response.CodePage = 65001,Response.Charset =“utf-8”,每个页面都将它放在顶部。 我写过meta charset utf-8。 我使用ODBC 5.2 x64驱动程序,我的连接字符串有charset:UTF8;。 并且所有MySQL设置都是utf-8(表格,字段,所有内容)。

好吧,我不想使用其他编码,字符集。 我做错了什么? 看来,这是关于数据库的。 问题是什么?

您需要使用charset参数在连接字符串中指定字符集; 看到MySQL ODBC doco 例如,添加 “charset = utf8;” “字符集= UCS2;” 到您的连接字符串。

编辑:我终于有机会在这上运行一个简单的测试工具,它确实失败了charset = utf8。 但是,由于VBScript在内部运行UCS2,我尝试使用charset = ucs2,它运行正常。 注意:页面仍设置为以UTF-8发送所有输出,只是VBScript使用UCS2从ODBC连接中提取数据。 工作完成了:)

甚至你的连接应该是UTF8。 在运行其他查询之前运行此查询

set names 'utf8'

SET NAMES指示客户端将用于将SQL语句发送到服务器的字符集。 因此,SET NAMES'cp1251'告诉服务器,“来自此客户端的未来传入消息是字符集cp1251。”它还指定了服务器用于将结果发送回客户端的字符集。 (例如,如果使用SELECT语句,它指示要用于列值的字符集。)

SET NAMES'x'语句相当于这三个语句:

SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;

仅供参考: 手动

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM