SerializeJSON не кодирует символы UTF8 в ColdFusion 9 - PullRequest
8 голосов
/ 03 июня 2011

У меня проблемы с ColdFusion и JSON.У моих пользователей есть имена файлов и другие ключевые слова с такими символами, как ç, что вызывает у меня боль, когда мне приходится передавать их обратно через JSON.

Когда я использую волшебную команду JSON для моей переменной:

<cfcontent type="application/json"> 
<cfset variables.stGalleryItem = StructNew() />
<cfset variables.stGalleryItem["imagePath"] = siteRoot & '/images/350460/hellç.txt' />
<cfset variables.stGalleryItem["title"] = 'çççç'  />
<cfset variables.stGalleryItem["author"] = 'HI' />
<cfset variables.stGalleryItem["text"] = 'aa' />
<cfset ArrayAppend(variables.arrGallery,variables.stGalleryItem) />

<cfoutput>
  #Trim(SerializeJSON(variables.arrGallery))#
</cfoutput>

Символ, который выплевывает, - это �, который никому не нужен.

Могу ли я что-нибудь сделать, чтобы сохранить ç?

моих пользователей?

Ответы [ 2 ]

8 голосов
/ 03 июня 2011

Вам необходимо указать набор символов в вашем тэге CFCONTENT.Я попробовал этот код в Google Chrome без charset , и он вернул текст правильно.Однако FireFox 3.6 вернул неверные символы, которые вы перечислили.

Это правильно возвращает символы UTF-8 в Chrome, FireFox и MSIE:

<cfcontent type="application/json; charset=utf-8">
0 голосов
/ 03 июня 2011

Выполните преобразование самостоятельно: http://tojson.riaforge.org/ (собственный) или http://json -lib.sourceforge.net / (через библиотеку Java)

...