4

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

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

我使用 Dreamweaver CS6。我保存所有页面 Unicode (UTF-8)。我在包含文件中编写了 Session.CodePage = 65001, Response.CodePage = 65001, Response.Charset = "utf-8" ,每个页面的顶部都有它。我已经编写了元字符集 utf-8。我使用 ODBC 5.2 x64 驱动程序,我的连接字符串有 charset:UTF8;。以及所有 MySQL 设置 utf-8(表、字段、所有内容)。

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

4

2 回答 2

3

需要使用 charset 参数指定连接字符串中的字符集;请参阅MySQL ODBC 文档。例如添加“charset=utf8;” “字符集=ucs2;” 到您的连接字符串。

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

于 2012-12-23T23:26:57.667 回答
0

甚至您的连接也应该是 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;

仅供参考:手动

于 2012-12-21T17:43:03.100 回答