mysql - ASP 中来自 MYSQL 的希伯来文编码提供?

标签 mysql asp-classic odbc

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

数据库设置为UTF-8。我用 phpmyadmin 检查了数据库内容,希伯来语是可读的。

看来问题出在 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") Call SqlQuery("SET NAMES utf8")

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

我与托管公司的技术支持进行了交谈,他们说其他 ASP 站点工作正常(尽管 3.5 ODBC 驱动程序不支持 unicode 是一个已知问题),因此我必须自己找到解决方案。 .. 我被告知使用“无 DSN 连接......”连接到 MySQL 数据库......

谁能给我解决方案?

最佳答案

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

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

您还需要确保您的字符集设置为 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

关于mysql - ASP 中来自 MYSQL 的希伯来文编码提供?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13493866/

相关文章:

mysql - 2 个表中行之间的 SQL 平均值

php - 基于 Ajax PHP 的简单论坛

javascript - 从另一个页面控制 Javascript 计时器?

sql - 收到此错误 "first argument is not an open RODBC channel"

python - Teradata 和 sqlachemy 连接

odbc - 读取 COBOL DAT 文件

php - 如何将 MYSQL 链接标识符作为字符串传递给 mysql_query?

mysql - 通过 Liquibase 重命名主键列,自动增量被删除(MySQL)

asp-classic - 如何在经典的 asp web 应用程序中生成依赖关系图? (静态分析)

xml - 将数据从 VBScript 传递到 XSL