正在处理通过QueryString传递的非英语字符串



我正在尝试用经典的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'
%>

阅读更多:内部字符串编码

最新更新