строка, использующая \u в качестве представления UTF-8 этой кодовой точки в php

В руководстве по PHP указано, что

\u{[0-9A-Fa-f]+} последовательность символов, соответствующая регулярному выражению, представляет собой кодовую точку Unicode, которая будет выводиться в строку как представление этой кодовой точки в кодировке UTF-8 (добавлено в PHP 7.0.0)

echo "\101";  //Output A

echo "\x41";  // Output A

echo "\u0041"; //But its now working. output same as \u0041

я не могу понять \u


person Curious    schedule 21.11.2017    source источник


Ответы (1)


Я предлагаю прочитать это хорошо объясняющее сообщение в блоге нынешнего генерального директора stackoverflow (забавное совпадение).

В основном, чтобы процитировать соответствующую часть (о «u»):

U+ означает «Юникод», а числа шестнадцатеричные. U+0639 — это арабская буква Айн. Английской буквой A будет U+0041.

ОБНОВЛЕНИЕ

Ваша проблема, похоже, на самом деле связана с отсутствующей реализацией между PHP 7.0 и PHP 7.2 -> Прочитайте этот SO-ответ здесь

person Ernst Zwingli    schedule 21.11.2017
comment
эхо \u+0041 не работает. дать тот же вывод \u+0041 - person Curious; 21.11.2017
comment
Ага. Только что узнал. Какая у вас версия PHP? - person Ernst Zwingli; 21.11.2017
comment
PHP версии 7.1 - person Curious; 21.11.2017
comment
только что распознал, вы избавились от + в конце последовательности. Это работает, когда вы добавляете его? - person Ernst Zwingli; 21.11.2017
comment
Ах... нашел это в этот пост SO здесь. Это связано не с неправильным синтаксисом, а с отсутствием utf8-функций в PHP между 7.0.x и 7.2.0. - person Ernst Zwingli; 21.11.2017