如何在php中获取孟加拉语字符的unicode值

时间:2016-02-13 03:38:51

标签: php unicode character-encoding special-characters

我发誓这不重复,因为我没有从这些问题和答案中找到答案。

我正在开展一个项目,我应该知道孟加拉语字符的unicode值。一个bengali字符' '具有unicode值' 0x0995 '。

我在网上找到了很多功能,但不幸的是他们没有使用孟加拉语。可能是因为孟加拉语是多字节语言。

php(用户定义或内置)中是否有任何功能,如

somefunction(ক);

,它将提供 0995 的值。

[请在您建议我之前测试您的代码字符ক是否提供十六进制0995或等效字段,]

谢谢。

3 个答案:

答案 0 :(得分:1)

从PHP 7开始,您可以使用来自intl扩展名的内置类IntlChar

1.void main(){
2.double *a, *b, *c;
3.int i,j,k, ok, n=100;
4.int nPadded = ( n%8 == 0 ? n : n + (8-n%8) );
5.ok = posix_memalign((void**)&a, 64, n*nPadded*sizeof(double));
6.ok = posix_memalign((void**)&b, 64, n*nPadded*sizeof(double));
7.ok = posix_memalign((void**)&c, 64, n*nPadded*sizeof(double));
8.for(i=0; i<n; i++)
9.{
10.    a[i] = (int) rand();
11.    b[i] = (int) rand();
12.    c[i] = 0.0;
13.}
14.#pragma offload target(mic) in(a,b:length(n*nPadded)) inout(c:length(n*nPadded))
15.#pragma omp parallel for
16.for( i = 0; i < n; i++ )
17.    for( k = 0; k < n; k++ )
18.        #pragma vector aligned
19.        #pragma ivdep
20.        for( j = 0; j < n; j++ ){
21.                c[i*nPadded+j] = c[i*nPadded+j] + a[i*nPadded+k]*b[k*nPadded+j]        
22.}

只需添加一个dechex来从十进制转换为hexa,或者对于自定义格式,添加(s)printf(例如:var_dump(IntlChar::chr('ক')); # => int(2453) )。

答案 1 :(得分:1)

对于PHP&lt; 7,此版本的uniord正确处理基本多语言平面以外的字符:

function uniord($s) {
    return unpack('V', iconv('UTF-8', 'UCS-4LE', $s))[1];
}

答案 2 :(得分:0)

               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('ক');