2016-02-13 2 views
-1

Клянусь, это не дубликат, потому что я не нашел ответа на эти вопросы и ответы вообще.Как получить значение unicode знака бенгали в php

Я работаю проект, в котором я должен знать юникоды бенгальских символов .A бенгальский характер «» имеет значение Юникода «0x0995».

Я нашел много функций в сети, но, к сожалению, они не работают с бенгальским языком. Может быть, потому, что бенгальский язык является многобайтовым.

Есть ли функция в PHP (определяемый пользователь или встроенный), как

SomeFunction (ক);

и он предоставит значение .

[протестируйте свой код для символа ক он обеспечивает ли гекс 0995 или эквивалент, прежде чем предложить мне,]

Спасибо.

+2

'эхо json_encode ('ক');' – roullie

+1

Что вы имеете в виду язык многобайтовой? Тогда есть ли языки, которые однобайтовые? Если да, то как бы вы использовали однобайтовый язык? –

+0

@roullie: спасибо, что он работает ... но «\ u0995», как удалить эти двойные цитаты и \ u. –

ответ

0

Для PHP < 7 Эта версия uniord сделок правильно с символами вне Basic Multilingual Plane:

function uniord($s) { 
    return unpack('V', iconv('UTF-8', 'UCS-4LE', $s))[1]; 
} 
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('ক'); 
0

Начиная с PHP 7, вы можете использовать встроенный класс IntlChar из аэроропортого расширения:

var_dump(IntlChar::chr('ক')); # => int(2453) 

Просто добавить DecHex для преобразования из десятичной системы счисления в гекс или, для произвольного формата (s) printf (например: U+%08X).

Смежные вопросы