我正在尝试使用Twitter API使用ColdFusion从Lists API中提取状态,并使用JSON格式和JSON组件解析我需要的所有内容。
我遇到的问题是尝试转换Unicode字符,以便它们在屏幕上正确显示。
这是来自JSON提要的示例数据
F\u00e0bregas
我可以使用一些正则表达式转换它吗?
目前,我已将其写入JSON Feed中的原始数据
#node.user.name#
哪个好,但它包含我需要转换的\ u00e0,所以它显示为Fàbregas,正确的重音超过'a'。
答案 0 :(得分:1)
首先,我认为这更像是一个字符编码问题,而不是正则表达式问题。
你是如何得到Twitter数据的?如果它正在使用<cfhttp>
,您可以尝试将charset
属性设置为UTF-8
。这将确保来自Twitter的数据以UTF-8到达。
然后,您应该在您尝试输出数据的页面上显式设置字符编码(当您使用FORM和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>
您会找到更多信息here。希望有所帮助!
答案 1 :(得分:0)
必须有一个更好的方法,但在那之前,我认为这是有效的
<cfset y = 'F\u00e0bregas'/>
<cfset x = evaluate(de(rereplace(y,'\\u([a-fA-f0-9]{4})','##chr(inputbasen(''\1'',16))##','all')))/>