2

我实际上有 2 页,一页是 ISO,另一页是 UTF8。我不可能在不弄得一团糟的情况下改变它们。

UTF8 页面中有一个表单,向 ISO 页面发送一个 GET 汉字数据。
url 看起来search=文員是 UTF8。

我在 ISO 页面上收到数据,但无法将其放入可读字符中。

有解决办法吗?

也许我应该在 Javascript 中转换 UTF8 页面上的数据?

4

3 回答 3

2

如果您可以修改发送页面,请将以下内容添加到您的表单标签中:

<form accept-charset="ISO-...">

为第二页插入正确的编码。有关更多信息,请查看MDN

于 2012-04-27T07:28:53.283 回答
1

除了给表单一个accept-target属性外,另一种选择是转换接收页面上的数据:

$data = $_POST['data']; // for example
$data = iconv('UTF-8', 'ISO-ENCODING-HERE', $data);

iconv如果输入数据无法在目标字符集中表示,请参阅文档以了解影响函数行为的选项。

于 2012-04-27T07:38:00.117 回答
0

您可以使用此函数将字符串从当前编码转换为所需的目标编码:

function correct_encoding($text, $target_encoding='UTF-8') {
    $current_encoding = mb_detect_encoding($text, 'auto');
    $text = iconv($current_encoding, $target_encoding, $text);
    return $text;
}
于 2012-04-27T07:49:20.273 回答