Как проанализировать формат Unicode (например, \ u201c, \ u2014), используя PHP - PullRequest
1 голос
/ 18 августа 2010

Я извлекаю данные из графика Facebook, в котором есть символы, закодированные так: \u2014 и \u2014

Есть ли функция для преобразования этих символов в HTML?т. е. \u2014 -> —

Если у вас есть дополнительные сведения об этих кодах символов) или вы предлагаете прочитать о юникоде в целом, я был бы признателен.Это так смущает меня.Я не знаю, как назвать эти коды ... Я думаю, Unicode, но Unicode, кажется, означает много вещей.

Ответы [ 2 ]

1 голос
/ 23 октября 2012

это не совсем правда, бобинс. Как вы справляетесь с JSON, содержащими испанские акценты? Есть 2 проблемы. Я делаю FB.api (URL, функция (ответ) ... var s = JSON.stringify (response);

и передать его в скрипт php через $ .post

Сначала я получаю усеченную строку. Мне нужно escape (JSON.stringify (response)) Затем я получаю полную строку в кодировке JSON с испанским акцентом. В качестве теста я помещаю его в текстовый файл, который загружаю с file_get_contents, и применяю php json_decode и ничего не получаю. Сначала вам нужно utf8_encode .

И тогда вы получите ожидающий объект вашего желания. После полного дня тестирования и гугла без какого-либо результата при правильном декодировании юникода я нашел ваш пост. Большое вам спасибо.

0 голосов
/ 19 августа 2010

Facebook Graph API возвращает объекты JSON. Используйте json_decode () для чтения их в PHP, и вам не нужно беспокоиться об обработке экранированных строковых литералов, таких как \uNNNN. Не пытайтесь самостоятельно декодировать строковые литералы JSON / JavaScript или извлекать выбранные свойства с помощью регулярных выражений.

Прочитав строковое значение, вы получите строку в кодировке UTF-8. Если ваш целевой HTML-код также имеет кодировку UTF-8, вам не нужно заменять (U + 2014) какой-либо ссылкой на сущность. Просто используйте htmlspecialchars() в строке при выводе, чтобы любые символы < или & в строке были правильно закодированы.

Если вам по какой-то причине необходимо создать безопасный для ASCII HTML, используйте htmlentities() с аргументом charset, установленным в 'utf-8'.

...