我正在尝试使用经典ASP处理通过QueryString传递的希伯来字符串。
我要求的网址: http://www.XXXX.com/myapp.asp?q =שלום
(שלום是希伯来文中的“和平”,一个由4个字母组成的单词)
在ASP端,我运行以下代码:
mstr = Request.QueryString("q")
for i=1 to Len(mstr)
Response.Write Asc(Mid(mstr, i, 1)) & "<br/>"
next
此脚本生成以下输出: 215 169 215 156 215 149 215 157
8个ASCII字母,表示每个字母有两个ASCII符号(字节)。
我需要看到以下输出: 249 236 229 237
(ASCII表的顶部)
如何才能正确处理此类字符串? (查看原始字符串中发送的4个字母)。
答案 0 :(得分:0)
http://www.XXXX.com/myapp.asp?q=שלום链接所在的html页面必须编码为 utf-8 。 因为浏览器会以与原始页面相同的编码对请求进行编码(最有可能)。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
但是查询字符串应该始终是URL编码的。浏览器会自动为标准链接执行此操作,但如果您通过JavaScript构建URL,则必须自行处理URL编码。
其次,您必须将服务器端脚本(ASP)设置为在utf-8中工作。您可以通过将这些行放在顶部来实现此目的。
<%
response.codepage = 65001
response.charset = 'utf-8'
%>
了解更多: internal string encoding