PHP中的UTF编码问题

时间:2011-02-07 09:11:33

标签: php utf-8

我使用以下代码行:

$revTerm =  "". strrev($limitAry["term"]);
$revTerm = utf8_encode($revTerm);

$ revTerm包含挪威字符øæå。但是,它显示正确。我需要在显示之前反转它们,所以我使用第一行。 当我以这种方式显示它时,我得到一个错误的xml格式错误 - 用于填充网格。 当我尝试使用第二行时,我没有收到错误但字符未正确显示。有没有其他方法可以解决这个问题? 如果它有帮助,我使用jqGrid来填充这些数据。

3 个答案:

答案 0 :(得分:4)

像大多数PHP字符串函数一样,

strrev对于多字节编码是不安全的。

答案 1 :(得分:2)

试试这个例子

$test = 'А роза упала на лапу Азора ウィキ';
$test = iconv('utf-8', 'utf-16le', $test);
$test = strrev($test);
// キィウ арозА упал ан алапу азор А
echo iconv('utf-16be', 'utf-8', $test);

(俄语) http://bolknote.ru/2012/04/02/~3625#56

答案 2 :(得分:0)

试试这个:

$revTerm = utf8_decode($limitAry["term"]);
$revTerm = strrev($revTerm);
$revTerm = utf8_encode($revTerm);

对于使用strrev,您必须将字符串解码为非多字节字符串。