php编码问题(utf8到iso)

时间:2012-04-27 07:25:52

标签: php

我实际上有2页,一个是ISO,另一个是UTF8。我没有可能在没有造成大麻烦的情况下改变它们。

UTF8页面中有一个表格,用于将中文字符的GET数据发送到ISO页面 该网址看起来像search=文員,即UTF8。

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

有解决方案吗?

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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

除了为表单提供accept-target属性外,另一个选项是转换接收页面上的数据:

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

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

答案 2 :(得分: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;
}