从编码的URL显示日语字符

时间:2013-09-09 07:30:54

标签: php

我在php上做了一个小任务(甚至在冷聚合上尝试了相同的任务)。

有一个API会将以下Pattern的网址作为数据发送给我:

  1. http://127.0.0.1:8080/test/index.php?brand=%93%FA%8EY%8E%A9%93%AE%8E%D4

  2. http://127.0.0.1:8080/test/index.php?brand=Airtel%20India%20Mobile%20Corporation

  3. 我必须显示品牌名称,这是任务的关键部分。当我简单地将品牌名称打印为:

    echo $_GET['brand']
    

    ,而不是我为URL 2获得正确的输出。

    URL 2打印 Airtel India Mobile Corporation

    但是,我的输出错误为1。 URL 1打印奇怪的字符集。请注意URL-1品牌包含日语公司(日产汽车有限公司)的日文名称。

    网址1:回显打印

      

    “úŽYŽ©“®ŽÔ

    我意识到它是一个编码问题。那我做的是:

    在IE上右键单击 - >选择编码 - >选择日语(Shift_JIS)作为编码。

    当我选择日语(Shift_JIS)时,我得到了正确的输出。

      

    日产自动车

    我怎样才能使用PHP(和/或)Cold-Fusion?换句话说,如何通过PHP(或coldfusion)代码(脚本)显示正确/期望的o / p。

    感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

我认为你可以使用这个功能。

http://jp2.php.net/manual/ja/function.mb-convert-encoding.php

$str = $_GET["brand"]; //%93%FA%8EY%8E%A9%93%AE%8E%D4
$str = mb_convert_encoding($str, "SJIS", "auto");
echo $str; //日産自動車

<强> EDITED

$str = $_GET["brand"]; //%93%FA%8EY%8E%A9%93%AE%8E%D4
$str = urldecode($str);
echo $str; //日産自動車

这应该有用。

还有“urlencode”功能与“urldecode”功能相反。

答案 1 :(得分:1)

如果在适当的网站上使用此功能,则应将该编码添加到HTML标头的charset属性中。如果它只是一个回显该字符串的测试页面,那么浏览器将只使用默认编码。

<meta charset="shift_js">