如何在 php 中获取孟加拉字符的 unicode 值
How to get unicode value of a Bengali character in php
我发誓这不是重复的,因为我根本没有从这些问题和答案中找到我的答案。
我正在做一个项目,我应该知道 孟加拉语字符 的 unicode 值。一个孟加拉语字符 'ক' 的 unicode 值为'0x0995'。
我在网上找到了很多函数,但遗憾的是它们无法使用孟加拉语 language.May 因为孟加拉语是多字节语言。
php(用户自定义或内置)有没有函数,比如
somefunction(ক);
它将提供值 0995。
[在你建议我之前,请测试你的字符 ক 代码是否提供十六进制 0995 或等价物,]
谢谢。
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;
}
echo uniord('ক');
从 PHP 7 开始,您可以使用来自国际扩展的内置 class IntlChar:
var_dump(IntlChar::chr('ক')); # => int(2453)
只需添加 dechex 即可将十进制转换为十六进制,或者对于自定义格式,(s)printf(例如:U+%08X
)。
对于 PHP<7,此版本的 uniord
可以正确处理基本多语言平面之外的字符:
function uniord($s) {
return unpack('V', iconv('UTF-8', 'UCS-4LE', $s))[1];
}
我发誓这不是重复的,因为我根本没有从这些问题和答案中找到我的答案。
我正在做一个项目,我应该知道 孟加拉语字符 的 unicode 值。一个孟加拉语字符 'ক' 的 unicode 值为'0x0995'。
我在网上找到了很多函数,但遗憾的是它们无法使用孟加拉语 language.May 因为孟加拉语是多字节语言。
php(用户自定义或内置)有没有函数,比如
somefunction(ক);
它将提供值 0995。
[在你建议我之前,请测试你的字符 ক 代码是否提供十六进制 0995 或等价物,]
谢谢。
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;
}
echo uniord('ক');
从 PHP 7 开始,您可以使用来自国际扩展的内置 class IntlChar:
var_dump(IntlChar::chr('ক')); # => int(2453)
只需添加 dechex 即可将十进制转换为十六进制,或者对于自定义格式,(s)printf(例如:U+%08X
)。
对于 PHP<7,此版本的 uniord
可以正确处理基本多语言平面之外的字符:
function uniord($s) {
return unpack('V', iconv('UTF-8', 'UCS-4LE', $s))[1];
}