Преобразование символов Юникода из ленты Twitter JSON API с помощью ColdFusion - PullRequest
3 голосов
/ 27 января 2011

Я пытаюсь использовать API Twitter, чтобы вытащить статусы из API списков, используя ColdFusion, и анализирую все, что мне нужно, просто отлично, используя формат JSON и компонент JSON.

Проблема, с которой я столкнулся, заключается в попытке преобразовать символы Юникода, чтобы они правильно отображались на экране.

вот пример данных, которые поступают из фида JSON

F\u00e0bregas

Есть ли какое-нибудь регулярное выражение, которое я мог бы использовать, чтобы преобразовать это?

В настоящее время он записывает необработанные данные из канала JSON

#node.user.name#

Это нормально, но он содержит \ u00e0, который мне нужно преобразовать, чтобы он отображался как Fàbregas с правильным акцентом над 'a'.

Ответы [ 2 ]

1 голос
/ 27 января 2011

Прежде всего, я думаю, что это больше проблема кодировки символов, чем проблема регулярных выражений.

Как вы получаете данные Twitter?Если он использует <cfhttp>, вы можете попробовать установить для атрибута charset значение UTF-8.Это обеспечит поступление данных из Twitter в UTF-8.

Тогда вам следует явно установить кодировку символов на странице, на которой вы пытаетесь вывести данные (ФОРМА и кодировка URL, пока вы находитесь на ней).Например:

<!--- URL and FORM encoding to UTF-8 --->
<cfset setEncoding("URL", "UTF-8") />
<cfset setEncoding("FORM", "UTF-8") />

<cfcontent type="text/html; charset=UTF-8" />

<cfoutput>#node.user.name#</cfoutput>

Вы найдете больше информации здесь .Надеюсь, это поможет!

0 голосов
/ 27 января 2011

Должен быть лучший способ, но до тех пор я думаю, что это работает

<cfset y = 'F\u00e0bregas'/>
<cfset x = evaluate(de(rereplace(y,'\\u([a-fA-f0-9]{4})','##chr(inputbasen(''\1'',16))##','all')))/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...