克服非UTF8 URL编码问题

3

我正在使用Slim框架,最近我的日志显示我收到了许多未编码为UTF-8的URI请求。

预期这些文本是希伯来语,但实际上解码后变成了一种类似乱码的东西。

例如,在日志中发现了以下缺失的URI:

/product/%c3%97%c2%a0%c3%97%e2%80%a2%c3%97%c2%a8%c3%97%e2%80%9d_%c3%97%c5%93%c3%97%c5%be%c3%97%c2%a7%c3%97%c2%a8%c3%97%c2%a8_120V_40W

解码后结果为: /product/נורה_למקרר_120V_40W 而我期望得到的是:/product/נורה_למקרר_120V_40W

我不确定是谁请求了这个URI,因为我无法获得引荐者或用户代理。

如果需要,我可以添加更多变量到日志中,只是在这种情况下我想不出什么有用的信息。

谢谢, Meir


我发现了这个网站:链接,它帮助我确定这是“Windows-1254”编码。 我尝试使用 $name = iconv("windows-1254" , "UTF-8//IGNORE" , $name)mb_convert_encoding($name, 'UTF-8','Windows-1254'),但仍然是乱码。 - meirlo
更新2: 使用mb_convert_encoding($name, 'Windows-1254','UTF-8')后, 我现在得到了נורה_ל�?קרר_120V_40W, 这与预期的文本有些相似,但仍然缺少一些东西。 有什么想法吗? - meirlo
1个回答

0
这个方法可行: $name = mb_convert_encoding($name, 'Windows-1252','UTF-8');


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接