我在php上做了一个小任务(甚至在冷聚合上尝试了相同的任务)。
有一个API会将以下Pattern的网址作为数据发送给我:
http://127.0.0.1:8080/test/index.php?brand=%93%FA%8EY%8E%A9%93%AE%8E%D4
http://127.0.0.1:8080/test/index.php?brand=Airtel%20India%20Mobile%20Corporation
我必须显示品牌名称,这是任务的关键部分。当我简单地将品牌名称打印为:
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。
感谢任何帮助。
答案 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">