在 php 中显示相同字符的不同 unicode 值
Displaying different unicode values for same character in php
我正在使用一个函数来确定不同孟加拉语的十进制 unicode 值 characters.The 函数是:
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;
}
它适用于除 ড়
以外的所有孟加拉语字符,当我从 console/textarea field.such 中提取此字符时,十六进制的 unicode 值 09DC 和 decimal.This 中的 2524 工作完美如:
$data = $_POST['data'];
echo uniord($data);
但是当从一个变量中使用这个字符时,会显示不同的 unicode 值。例如:
$data_one = 'ড়';
echo uniord($data_one);
这提供了十六进制的 09A1 或十进制的 2465 的 unicode 值,这是另一个类似的词,但不是我想要的字符值。
如何解决这个问题。谢谢
U+09DC has a canonical decomposition as U+09A1 U+09BC. It sounds like your text editor is saving text using decomposed normal form。看看您是否可以更改设置以使用组合的标准格式进行保存,或者尝试使用不同的文本编辑器。
或使用转义码:"\xe0\xa7\x9c"
我正在使用一个函数来确定不同孟加拉语的十进制 unicode 值 characters.The 函数是:
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;
}
它适用于除 ড়
以外的所有孟加拉语字符,当我从 console/textarea field.such 中提取此字符时,十六进制的 unicode 值 09DC 和 decimal.This 中的 2524 工作完美如:
$data = $_POST['data'];
echo uniord($data);
但是当从一个变量中使用这个字符时,会显示不同的 unicode 值。例如:
$data_one = 'ড়';
echo uniord($data_one);
这提供了十六进制的 09A1 或十进制的 2465 的 unicode 值,这是另一个类似的词,但不是我想要的字符值。
如何解决这个问题。谢谢
U+09DC has a canonical decomposition as U+09A1 U+09BC. It sounds like your text editor is saving text using decomposed normal form。看看您是否可以更改设置以使用组合的标准格式进行保存,或者尝试使用不同的文本编辑器。
或使用转义码:"\xe0\xa7\x9c"