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