【问题标题】:Converting Unicode Characters from Twitter JSON API feed using ColdFusion使用 ColdFusion 从 Twitter JSON API 提要转换 Unicode 字符
【发布时间】:2011-01-27 13:10:46
【问题描述】:
我正在尝试使用 Twitter API 通过 ColdFusion 从 Lists API 中提取状态,并使用 JSON 格式和 JSON 组件解析我需要的所有内容。
我遇到的问题是尝试转换 Unicode 字符,以便它们在屏幕上正确显示。
这是来自 JSON 提要的示例数据
F\u00e0bregas
我可以使用一些正则表达式来转换它吗?
目前我让它从 JSON 提要中写出原始数据
#node.user.name#
这很好,但它包含我需要转换的 \u00e0,因此它显示为 Fàbregas,并在 'a' 上带有正确的重音。
【问题讨论】:
标签:
regex
json
api
twitter
coldfusion
【解决方案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。希望对您有所帮助!
【解决方案2】:
必须有更好的方法,但在那之前我认为这是可行的
<cfset y = 'F\u00e0bregas'/>
<cfset x = evaluate(de(rereplace(y,'\\u([a-fA-f0-9]{4})','##chr(inputbasen(''\1'',16))##','all')))/>