【问题标题】:Different querystring urlencoding based on codepage. ASP classic基于代码页的不同查询字符串 urlencoding。 ASP 经典
【发布时间】:2011-11-29 01:59:23
【问题描述】:

我们目前正在将我们的 web 应用程序从 ISO-8859-1 转换为 UTF-8。一切都很好,但从其他站点(注册表单)请求获取/发布变量。

一些发布到我们网站的网站使用 ISO-8859-1 编码,而有些网站使用 UTF-8。

问题是特殊字符的 URL 编码会因站点字符集而异。

例如: ø = ISO-8859-1 中的 %F8 ø = UTF-8 中的 %C3%B8

当我有 UTF-8 字符集时,我无法正确获取 %F8。我只得到一个 Unicode 字符“替换字符”(U+FFFD)。

任何有关如何解决此问题的提示将不胜感激:)

托比昂

【问题讨论】:

    标签: utf-8 asp-classic character-encoding url-encoding


    【解决方案1】:

    您可以使用<form accept-charset="UTF-8"> 明确指定编码。

    如果您不想这样做,浏览器必须猜测您想要的编码。为此,它通常采用表单所在页面的编码。因此,如果您将 HTML 文件作为 UTF-8 提供,您的表单也将作为 UTF-8 发回。

    【讨论】:

    • 感谢您的回复!好的,所以它不可能在我们的服务器上转换编码?有很多表格张贴给我们,我无法访问它们。
    • 如果您不是首先提供表格的人,则不会。它似乎不是。
    【解决方案2】:

    我建议您在转换之前对输入进行预分析。基本上,扫描 Æ、Ø 和 Å(大写和小写)的 iso-8859-1 代码。如果找到任何内容,请搜索/替换整个请求,将 iso-char 代码交换为 UTF-8 charcode。

    【讨论】:

    • 嗯,您可能想检查是否有任何 ISO 字符码映射到 UTF-8 中可能相关的内容。
    • 你知道有没有可以做这类工作的类,或者我需要收集我遇到问题的每个角色?
    • 我不知道有什么特定的课程可以为你做这件事。因为您实际上是在用您需要的特殊字符覆盖 UTF-8 规范中的任何字符代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多