преобразовать все символы \ u в UTF8 [дубликаты]

0

пример моего тестового кода:

<?
$city = "L\u00e9ry, Quebec";
echo 'city original: '.$city.'<br>';
$city = preg_replace('/u([\da-fA-F]{4})/', '&#x\1;', $city);
echo 'city modified: '.$city.'<br>';
?>

мой результат:

city original: L\u00e9ry, Quebec
city modified: L\éry, Q

У меня есть некоторые проблемы... спасибо

  • 0
    Нет ли в многобайтовых строковых библиотеках php некоторых функций mb_ *, которые лучше справляются с преобразованиями кодировки, чем ручное регулярное выражение? Я просто предлагаю, я не знаю наверняка
  • 0
    Просто ... добавьте обратную косую черту в ваш матч ... `\\\`, так как вы в регулярном выражении.
Теги:

1 ответ

-3
Лучший ответ

Это должно сработать для вас:

$city = preg_replace('/\\\\u([0-9a-fA-F]{4})/', '&#x\1;', $city);

Вывод:

city original: L\u00e9ry, Quebec
city modified: Léry, Quebec
  • 0
    Обратите внимание, что это не заменяет последовательность на UTF-8 , а превращает ее в сущность HTML, которая будет правильно отображаться только в контексте HTML. Фактические данные все равно будут "L & # x00e9; ry".
  • 0
    @deceze Op хотел заменить его на: &#x\1 и вот почему проголосовали?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню