Intereting Posts

Как преобразовать текст в код юникода, например, \ u0054 \ u0069 \ u0073, используя php?

EDIT 2: Я хотел бы преобразовать английские слова в номера юникода, используя php5, а затем созданный как \ u * * * * где * * * * – номер юникода.

В моем первоначальном вопросе я ошибочно считал, что \ u является стандартом для кодирования unicode, когда на самом деле его просто убегают в JavaScript (спасибо, Юкка К. Корпела за это). Несмотря на то, что я хотел сделать преобразование в PHP, преобразованный юникод должен был использоваться в JavaScript.

Я попробовал следующие варианты, но не повезло. Разумеется, ответ от deceze сделал трюк, спасибо вам большое!

ВЕЩИ, ПОЛУЧЕННЫЕ

Я читал, что могу использовать iconv для этого, но мне не повезло и не могу найти никаких примеров о том, как это сделать.

Я также попробовал код Скотта Рейнена здесь. Как получить номер кодовой точки для заданного символа в строке utf-8? но я не могу заставить его работать. Когда я попробовал, я включил скрипт в файл вместе с

$str='test'; echo utf8_to_unicode($str); 

Это просто повторило test .

Я также прочитал, что могу использовать

 echo json_encode("test"); 

но снова я получаю test напечатанный на экране.

Любая помощь приветствуется.

EDIT1: На самом деле, я думаю, они называются кодовыми единицами, а не кодовыми точками.

json_encode значительной степени делает это для вас, но только для символов, отличных от ASCII. Итак, все, что вам нужно сделать, это конвертировать символы ASCII вручную. Вот функция, которая делает это по принципу «по одному»:

 function utf8ToUnicodeCodePoints($str) { if (!mb_check_encoding($str, 'UTF-8')) { trigger_error('$str is not encoded in UTF-8, I cannot work like this'); return false; } return preg_replace_callback('/./u', function ($m) { $ord = ord($m[0]); if ($ord <= 127) { return sprintf('\u%04x', $ord); } else { return trim(json_encode($m[0]), '"'); } }, $str); }