如何在$ _GET中处理日文字符

时间:2012-05-31 09:53:28

标签: php encoding utf-8 get

我做

http://localhost/api/test2.php?id=jr-東北本線-荒川橋梁__35.79_139.72

然后我做

$data=$_GET['id']; // Zend says that $data is jr-????-????__35.79_139.72
$encoding = mb_detect_encoding ($data); // $encoding is ASCII
$data= mb_convert_encoding($data,'utf-8'); //$data is still jr-????-????__35.79_139.72
$encoding2 = mb_detect_encoding ($data); // $encoding is still ASCII

事情是我希望$ data为jr-东北本线 - 荒川桥梁__35.79_139.72

那我该怎么办?

1 个答案:

答案 0 :(得分:2)

如果URL数据(查询部分)的编码实际上是UTF-8编码,则根本不需要执行任何操作。由于它的二进制安全字符串,PHP支持UTF-8开箱即用。

所以你最好不要为了尝试一些有趣的事情而进行任何转换(并且失败的时候会很糟糕)。