我们目前正在将我们的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
答案 0 :(得分:0)
您可以使用<form accept-charset="UTF-8">
明确指定编码。
如果您不想这样做,浏览器必须猜测您想要的编码。为此,它通常采用表单所在页面的编码。因此,如果您将HTML文件作为UTF-8
投放,那么您的表单也会以UTF-8
的形式发回。
答案 1 :(得分:0)
我建议你在转换前对输入进行预分析。基本上,扫描Æ,Ø和Å(大小写)的iso-8859-1代码。如果找到,请对整个请求进行搜索/替换,将iso-char代码交换为UTF-8字符代码。