什么';就字符集而言,使用#form#和#getHttpRequestData()#有什么区别?
我有一个coldfusion页面,uni.cfm:什么';就字符集而言,使用#form#和#getHttpRequestData()#有什么区别?,http,coldfusion,localhost,Http,Coldfusion,Localhost,我有一个coldfusion页面,uni.cfm: <cfprocessingdirective pageencoding="utf-8"> <cfscript> <cfdump var="#form.a#" label="form"> <cfdump var="#getHttpRequestData().content#" label="form2"> 为什么#form.a#不能正确处理二进制字符串,而getHttpRequestData()
<cfprocessingdirective pageencoding="utf-8">
<cfscript>
<cfdump var="#form.a#" label="form">
<cfdump var="#getHttpRequestData().content#" label="form2">
为什么#form.a#不能正确处理二进制字符串,而getHttpRequestData()却能正确处理二进制字符串?让发件人将内容类型更改为
多部分/表单数据
,而不使用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#并获得正确的字符串 这是一个很好的问题,但您的第一个CFDUMP应该是“#form.a#”。这也让我感到不安:)当您“查看源代码”时会发生什么?也许是CFDUMP让您感到困惑。在第二种情况下,您得到的是原始的“未经修饰的”版本。。也许cfdump中的CSS和行为就是最初破坏它的原因。在第二个实例中,它是相当“普通的jane”,因此它得到了正确的dom属性级联来处理?表单上的SetEncoding指令的目的是什么?传入的编码是什么?(getEncoding(form))?@Sharondio没有目的。我只是把它拿出来,结果是一样的。表单已经在使用UTF-8。可能是因为
内容类型:application/x-www-form-urlencoded
,这意味着内容是urlencoded
,而不是二进制的?我不确定。但是,如果getHttpRequestData()
适合您,请使用它。
POST *URL* HTTP/1.1
Content-Type: multipart/form-data; boundary=AaB03x
Content-Length: 145
--AaB03x
Content-Disposition: form-data; name="a"
ΠΣΩ
--AaB03x--