3

我有一个coldfusion页面,uni.cfm:

<cfprocessingdirective pageencoding="utf-8">
<cfscript>

<cfdump var="#form.a#" label="form">
<cfdump var="#getHttpRequestData().content#" label="form2">

发送以下 HTTP 请求会在返回的 html 中首先生成字符串"???",然后是字符串"a=ΠΣΩ"

POST http://localhost:8080/uni/unicode.cfm HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
User-Agent: unicli
Host: localhost:8080
Content-Length: 8
Pragma: no-cache

a=ΠΣΩ

为什么 #form.a# 不能正确处理二进制字符串,而 getHttpRequestData() 可以?

4

1 回答 1

2

让发件人将内容类型更改为multipart/form-data没有 url 编码就像一个魅力:

POST *URL* HTTP/1.1
Content-Type: multipart/form-data; boundary=AaB03x
Content-Length: 145

--AaB03x
Content-Disposition: form-data; name="a"

ΠΣΩ
--AaB03x--

然后能够使用#form.a# 并获得正确的字符串!

于 2012-06-01T19:57:48.470 回答