我正在尝试用经典的ASP处理通过QueryString传递的希伯来语字符串。
我请求的URL:http://www.XXXX.com/myapp.asp?q=Şدد
在ASP端,我运行以下代码:
mstr = Request.QueryString("q")
for i=1 to Len(mstr)
Response.Write Asc(Mid(mstr, i, 1)) & "<br/>"
next
此脚本生成以下输出:215169215156215149215157
8个ASCII字母,表示每个字母有两个ASCII符号(字节)。
我需要看到以下输出:249236229237
(ASCII表的顶部)
我应该怎么做才能正确处理这样的字符串?(查看原始字符串中发送的4个字母)。
http://www.XXXX.com/myapp.asp?q=Şددlink是,必须编码为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'
%>
阅读更多:内部字符串编码