SerializeJSON doesn't encode UTF8 characters in ColdFusion 9

我的梦境 提交于 2020-01-28 10:39:23

问题


I'm having some issues with ColdFusion and JSON. My users have filenames and other key words with characters like ç in them which is causing me a pain when I have to pass them back via JSON.

When I use the magic JSON command on my variable:

<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>

The character that gets spit out is �, which does no one any good.

Is there anything I can do to preserve my users' ç?


回答1:


You need to specify the Character Set in your CFCONTENT tag. I tried this code in Google Chrome without charset and it returned the text correctly. However, FireFox 3.6 returned the incorrect characters you listed.

This correctly returns the UTF-8 characters in Chrome, FireFox and MSIE:

<cfcontent type="application/json; charset=utf-8">



回答2:


Do the conversion yourself : http://tojson.riaforge.org/ (native) or http://json-lib.sourceforge.net/ (via a Java library)



来源:https://stackoverflow.com/questions/6224899/serializejson-doesnt-encode-utf8-characters-in-coldfusion-9

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!