为了账号安全,请及时绑定邮箱和手机立即绑定

检测HTTP POST请求的字符编码

检测HTTP POST请求的字符编码

温温酱 2019-11-29 09:32:46
我正在构建一个Web服务,并拥有一个接受POST来创建新资源的节点。该资源需要两种内容类型之一-我将要定义的XML格式或表单编码的变量。这个想法是使用的应用程序可以直接发布XML并从更好的验证等中受益,但是还有一个HTML接口可以发布表单编码的内容。显然,XML格式具有字符集声明,但是仅通过查看POST就看不到如何检测表单的字符集。来自Firefox的表单的典型帖子如下所示:POST /path HTTP/1.1Host: www.myhostname.comUser-Agent: Mozilla/5.0 [...etc...]Accept: text/html,application/xhtml+xml, [...etc...]Accept-Language: en-gb,en;q=0.5Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-aliveContent-Type: application/x-www-form-urlencodedContent-Length: 41field1=value1&field2=value2&field3=value3似乎没有任何有用的字符集指示。据我所知,application / x-www-form-urlencoded类型是完全用HTML定义的,它只列出了%编码规则,但没有说明数据应包含的字符集。基本上,如果我不知道最初显示的HTML字符集是什么,有什么方法可以告诉字符集?否则,我将不得不尝试根据存在的字符来猜测字符集,而我所能告诉的总是有些昧。
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

POST中使用的字符集将与托管表单的HTML中指定的字符集匹配。因此,如果您的表单是使用UTF-8编码发送的,则该编码是用于发布内容的编码。在将值转换为字符编码的八位位组之后,将应用URL编码。


查看完整回答
反对 回复 2019-11-29
?
慕慕森

TA贡献1856条经验 获得超17个赞

尝试在Content-Type上设置字符集:


httpCon.setRequestProperty( "Content-Type", "multipart/form-data; charset=UTF-8; boundary=" + boundary );


查看完整回答
反对 回复 2019-11-29
  • 3 回答
  • 0 关注
  • 782 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信