Конвертация иероглифа в юникод

Levon

Новичок
Конвертация иероглифа в юникод

Добрый день.

Имею строку: '举' (иероглиф)
мне нужно получить ' & # x 4E3E ;' - юникод этого иероглифа
Подскажите, пожалуйста.
 

Levon

Новичок
нет, не из базы. в базе как раз они у меня хранятся в виде 4E3E
из формы поиска и из других мест.
 

Wicked

Новичок
Имею строку: '举' (иероглиф)
в какой кодировке эта строка у тебя есть? UTF-8?

мне нужно получить ' & # x 4E3E ;' - юникод этого иероглифа
у тебя каша в голове. "Юникод этого иероглифа" - это примерно как "html этого тега".
 

HEm

Сетевой бобер
смотри в комменты на http://ru2.php.net/manual/ru/function.ord.php
 

Wicked

Новичок
ок... тогда такой вопрос: зачем тебе показывать html entity? Почему бы не выводить сразу UTF-8 строку? (Разумеется, это если вся страница отдается как UTF-8... А ежели кодировка страницы не UTF-8, то что мешает ее таковой сделать, если уж приходится с китайским работать?)

и еще один: зачем в базе они
хранятся в виде 4E3E
?
 

Levon

Новичок
у меня вся БД построена на такой записи

для примера http://crc.levon.ws/dictionary/hieroglyph/4EEC
словарная статья иероглифа 们

в предыдущей версии движка у меня такой проблемы не возникало
(http://www.chinese-russian.com/modules.php?name=Charslist&ca=show&st=4E3E)
тогда везде была кодировка 1251 и все иероглифы, которые я задавал в форме поиска приходили как & # x nnnn ;

новая версия вся в utf-8, и нужна теперь трансформация
для того, чтоб искать в БД иероглиф, мне нужно превратить его в & # x nnnn ;
 

Levon

Новичок
htmlentities и htmlspecialchars к сожалению не помогают

htmlentities выдает строку & auml ;& cedil ; & frac34 ; (пробелы вставлены мною) на иероглиф 举 код которого 4E3E (шестнадцатиричная запись) & # 20030 (десятеричная запись)

почему не просто в nnnn ?
Это уже в идеале, & # x nnnn; в nnnn превратить никакого труда уже не составит. nnnn это конечная цель.
даже если получить его в виде & # NNNNN (десятеричная запись), то уже было бы легче

кстати, интересное наблюдение - при редактировании этого поста в форме на месте иероглифа оказывается его десятеричная запись & # 20030 ; т.е. при написании поста я просто копирую и вставляю иероглиф в форму, а при редактировании на его месте десятеричная запись. Вот, собственно мне бы так :D
 

Wicked

Новичок
nnnn - это hex-представление unicode codepoint.

так что все, что тебе нужно - это отображение из utf-8 в unicode codepoint'ы.
 

Levon

Новичок
Спасибо, теперь я знаю как это называется

но как мне получить из строки unicode codepoint?
 

Levon

Новичок
Автор оригинала: Wicked
http://ru.wikipedia.org/wiki/UTF-8
там есть табличка

-~{}~ 05.06.08 12:47:

http://ru2.php.net/manual/ru/function.ord.php#82193
это, я так понимаю, уже готовое решение.

очень может быть, что HEm имел в виду именно этот комментарий :)
Да, действительно, это оно
алилуя!

я последние полчаса эксперементировал с ord, но до комментов еще не дошел, а там решение

Спасибо большое всем!
 
Сверху