Отображение различных значений Юникода для одного и того же символа в переполнении стека

Я использую функцию для определения значения Юникода в десятичном формате для разных бенгальских символов. Функция:

               function uniord($u) {
$k = mb_convert_encoding($u, 'UCS-2LE', 'UTF-8');
$k1 = ord(substr($k, 0, 1));
$k2 = ord(substr($k, 1, 1));
return $k2 * 256 + $k1;
}

Это работает для всех бенгальских персонажей, кроме значение Юникода 09DC в шестнадцатеричном и 2524 в десятичном виде. Это прекрасно работает, когда я беру этот символ из поля console / textarea.such как:

                $data = $_POST['data'];
echo uniord($data);

Но при использовании этого символа из переменной .such as отображается другое значение Юникода:

                $data_one = 'ড়';
echo uniord($data_one);

это обеспечивает Unicode значение 09A1 в шестнадцатеричном или 2465 в десятичном виде, что является другим похожим словом, но не моим значением символа желания.

Как это решить. Спасибо

1

Решение

U + 09DC имеет каноническое разложение как U + 09A1 U + 09BC. Похоже, ваш текстовый редактор сохраняет текст с помощью разложенная нормальная форма. Посмотрите, можете ли вы изменить настройки, чтобы сохранить их, используя составленную обычную форму, или попробуйте использовать другой текстовый редактор.

Или используйте escape-коды: "\xe0\xa7\x9c"

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]