【发布时间】:2009-08-16 10:20:10
【问题描述】:
我有一个 MYSQL 数据库,它需要由 PHP 和 MySQL 脚本访问,这在大多数情况下都可以正常工作,但有一些“特殊”字符,例如双引号、撇号在 ASP 脚本中无法正确显示。
例如 MySQL 数据库来自 Drupal 安装并包含一个表,其中包含一个包含文本“双引号”的字段(引号是智能引号,但似乎不会在堆栈溢出时显示)。这在 php 脚本中显示得很好,但在 ASP 脚本中却没有。我已经在 PHP 和 ASP 中编写了一个简单的脚本来循环遍历字符串并打印字符代码,这里是输出:
PHP
“ 147
A 65
32
d 100
o 111
u 117
b 98
l 108
e 101
32
q 113
u 117
o 111
t 116
e 101
” 148
ASP
� 8220
A 65
32
d 100
o 111
u 117
b 98
l 108
e 101
32
q 113
u 117
o 111
t 116
e 101
� 8221
如您所见,双引号在 PHP 和 ASP 中显示为不同的字符,而 ASP 的显示不正确。
我正在使用标准 Drupal 安装和 PHP 5 在 Windows 机器上运行 MySQL 5。ASP 使用 MySQL ODBC 3.51 驱动程序,除了打开连接并运行之外,我没有在 PHP 或 ASP 中运行任何其他命令选择语句。
编辑这里要求的是asp脚本
Dim strConn, objConn, objRS, strQ
Dim i, strBody
strConn = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=" & strDBServer & "; DATABASE=studential; UID=" & strDBUser & ";PASSWORD=" & strDBPass & "; OPTION=3"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open(strConn)
strQ = "select body from drupal_node_revisions where nid = 261"
Set objRS = objConn.Execute(strQ)
strBody = objRS("body")
For i = 1 To len(strBody)
Response.write(Mid(strBody, i, 1) & " " & AscW(Mid(strBody, i, 1)) & "<br />")
Next
objRS.Close
objConn.Close
Set objRS = Nothing
Set objConn = Nothing
进一步编辑
在下面的行中用 Asc 替换 AscW 时:
Response.write(Mid(strBody, i, 1) & " " & AscW(Mid(strBody, i, 1)) & "<br />")
字符代码现在匹配,但引号字符仍然显示不正确。我的页面包含 utf-8 字符集标记,因此很可能在此之前没有使用 utf-8 编码 - 知道它可能是什么或如何修复它?
感谢您的帮助,
汤姆
【问题讨论】:
标签: php mysql unicode asp-classic utf-8