ASP中的MYSQL的希伯来编码提供了什么?

时间:2012-11-21 13:01:34

标签: mysql asp-classic odbc

我使用经典ASP和MySQL数据库作为后端为客户构建了一个站点。 一切都在测试服务器上工作正常,但是当我将网站转移到实时服务器时,从数据库中提取的所有希伯来语数据都是以胡言乱语出现......

数据库设置为UTF-8。我用phpmyadmin检查了数据库内容,并且hebre是可读的。

看起来问题是ODBC驱动程序。在我的服务器上我正在使用ODBC 5.1,而在实时服务器上他们仍然使用3.51 ...显然希伯来语是这个odbc驱动程序的问题,但主机公司拒绝更新,即使它是一个以色列托管公司......

我的数据库连接字符串如下所示:

  

“DRIVER = {MySQL ODBC 3.51 Driver}; SERVER = localhost; DATABASE = 100298270_dbname; UID = username; PASSWORD = pass; OPTION = 0; charset = utf8;”

所以,经过几个小时的阅读后,我发现了以下解决方案,其中没有一个有所帮助:

  1. 在其他查询之前在数据库上运行此查询:

      

    SET NAMES utf8“

  2. 运行所有这些查询:

    调用SqlQuery(“SET character_set_client = utf8”) 调用SqlQuery(“SET character_set_connection = utf8”) 调用SqlQuery(“SET character_set_database = utf8”) 调用SqlQuery(“SET character_set_results = utf8”) 调用SqlQuery(“SET character_set_server = utf8”) 调用SqlQuery(“SET NAMES utf8”)

  3. 但是当我运行它们时似乎没有任何改变 '我试图实现这个解决方案MySQL ODBC 3.51 Driver UTF-8 encoding,但由于我只能访问托管的PLESK控制面板,我只能创建一个默认的DSN连接。

    我与托管公司的技术支持部门进行了交谈,他们说其他ASP网站工作正常(即使已知的问题是3.5 ODBC驱动程序不支持unicode),所以我必须自己找到解决方案。 ..我被告知用“DSN-less connection ...

    连接到MySQL数据库

    任何人都有解决方案吗?

1 个答案:

答案 0 :(得分:2)

您还必须更改CodePage,因为默认情况下ASP将使用ANSI代码页。

http://msdn.microsoft.com/en-us/library/ms524628(v=vs.90).aspx

您还需要确保您的Charset设置为UTF-8

Response.Codepage = 65001  'Forces ASP to use UTF-8 for string encoding
Response.Charset = "UTF-8" 'Sets charset variable of content type response header
Response.LCID = 1037 'Hebrew Locale ID

您可能还需要添加HTML元标记以强制浏览器使用UTF-8。

<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />

还尝试将其附加到每个查询的开头:

SET NAMES HEBREW