Проблема в кодировке UTF в PHP - PullRequest
0 голосов
/ 07 февраля 2011

Я использую следующие строки кода:

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

$ revTerm содержит символы Норвегии как ø ø å.Тем не менее, это показано правильно.Мне нужно поменять их перед отображением, поэтому я использую первую строку.Когда я отображаю их таким образом, я получаю ошибку в плохом формате xml - используется для заполнения сетки.Когда я пытаюсь использовать вторую строку, я не получаю сообщение об ошибке, но символы отображаются неправильно.Может ли быть другой способ решить это?Если это может помочь, я использую jqGrid для заполнения этих данных.

Ответы [ 3 ]

4 голосов
/ 07 февраля 2011

strrev, как и большинство строковых функций PHP, небезопасно для многобайтовых кодировок.

2 голосов
/ 24 июля 2013

попробуйте этот пример

$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

0 голосов
/ 07 февраля 2011

Попробуйте это:

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

Для использования strrev вам необходимо декодировать вашу строку в не многобайтовую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...