0

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

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

  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

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

echo $_GET['brand']

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

URL 2 打印Airtel India Mobile Corporation

但是,我得到了 1 的错误输出。URL 1 打印出一组奇怪的字符。请注意 URL-1 品牌包含日本公司 (Nissan Motor Co., Ltd.) 的日文名称。

URL 1:显打印

“úŽYŽ©“®ŽÔ</p>

我意识到这是一个编码问题。然后我做的是:

右键单击 IE -> 选定的编码-> 选定的日语(Shift_JIS)作为编码。

一旦我选择了Japanese(Shift_JIS),我就得到了正确的输出。

日产自动车</p>

我如何使用 PHP(和/或)Cold-Fusion 来做到这一点?换句话说,如何通过 PHP(或coldfusion)代码(脚本)显示正确/所需的 o/p。

任何帮助表示赞赏。

4

2 回答 2

3

I think you can use this function.

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; //日産自動車

This should work.

There is "urlencode" function that do the opposite thing of "urldecode" function as well.

于 2013-09-09T07:56:36.497 回答
1

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

<meta charset="shift_js">
于 2013-09-09T07:50:08.167 回答