基于代码页的不同查询字符串url编码。 ASP经典

时间:2010-11-04 15:10:41

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

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

发布到我们网站的部分网站采用ISO-8859-1编码,而som采用UTF-8。

问题是特殊字符的URL编码方式会有所不同,具体取决于网站字符集。

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

当我拥有UTF-8字符集时,我无法获得%F8。我只获得Unicode字符'REPLACEMENT CHARACTER'(U + FFFD)。

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

Torbjørn

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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