【发布时间】:2013-08-27 00:04:58
【问题描述】:
我正在使用 ColdFusion 10 的新 REST API,但遇到了 UTF-8 字符问题。似乎 ColdFusion 10 的新 REST API 完全破坏了非 ASCII 字符。有没有办法解决这个问题?
例如,假设我有一个这样的端点:
<cfcomponent rest="true" restpath="/widgets" produces="application/json">
<cffunction name="echo" access="remote" httpmethod="PUT" returntype="string">
<cfreturn GetHttpRequestData().content />
</cffunction>
</cfcomponent>
此端点仅以请求中发送的确切内容进行响应。
这是我的要求:
PUT http://www.mycompany.com/rest/v1.0/widgets HTTP/1.1
User-Agent: Fiddler
Host: www.mycompany.com
Content-Length: 15
こんにちは
这是我得到的回复:
HTTP/1.1 200 OK
Content-Type: application/json
Server: Microsoft-IIS/7.5
Date: Mon, 26 Aug 2013 23:59:09 GMT
Content-Length: 37
�ん���
注意响应与请求完全不同。
为了 100% 确定这是 ColdFusion 破坏请求的问题,而不是 ColdFusion 生成的响应的问题,我增强了端点,也将请求正文记录到数据库中,果然,它已经损坏了。
有什么办法吗?
【问题讨论】:
-
仅供参考,我在这里提交了错误报告,但我仍在寻找解决方法:bugbase.adobe.com/index.cfm?event=bug&id=3618494
-
您不应该指定请求的字符集吗?
-
您是否尝试过检查网络服务器,我看到您使用的是 IIS?正如彼得所说,在需要的地方将 utf-8 设置为默认字符集。首先你可以在 CF admin 中进行,"-Dfile.encoding=UTF8", encoding request, encoding response...
-
谢谢@zarko.susnjar。你能告诉我如何在 ColdFusion Administrator 中设置默认编码吗?我到处找,我无法通过管理员 UI 找到这个设置。谢谢。
标签: rest utf-8 coldfusion coldfusion-10