【问题标题】:Processing non-English strings passed through QueryString处理通过 QueryString 传递的非英语字符串
【发布时间】:2012-09-05 10:41:59
【问题描述】:

我正在尝试使用经典 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 个字母)。

【问题讨论】:

    标签: encoding asp-classic ascii urlencode


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      相关资源
      最近更新 更多