gpt4 book ai didi

http - 检测 HTTP POST 请求的字符编码

转载 作者:可可西里 更新时间:2023-11-01 15:03:52 26 4
gpt4 key购买 nike

我正在构建一个 Web 服务,并且有一个节点接受 POST 以创建新资源。该资源需要两种内容类型之一 - 我将定义的 XML 格式或表单编码变量。

想法是消费应用程序可以直接发布 XML 并从更好的验证等中受益,但还有一个 HTML 界面可以发布表单编码的内容。显然 XML 格式有一个字符集声明,但我无法仅通过查看 POST 来了解如何检测表单的字符集。

从 Firefox 到表单的典型帖子如下所示:

POST /path HTTP/1.1
Host: www.myhostname.com
User-Agent: Mozilla/5.0 [...etc...]
Accept: text/html,application/xhtml+xml, [...etc...]
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 41

field1=value1&field2=value2&field3=value3

其中似乎不包含任何有用的字符集指示。

据我所知,application/x-www-form-urlencoded 类型完全在 HTML 中定义,它只是列出了 %-编码规则,但没有说明数据应该在什么字符集中.

基本上,如果我不知道 HTML 最初显示的字符集是什么,有什么方法可以告诉字符集吗?否则,我将不得不尝试根据存在的字符来猜测字符集,而我所知道的总是有点不确定。

最佳答案

HTTP POST 的默认编码是 ISO-8859-1。

否则你必须查看 Content-Type header ,它看起来像

Content-Type: application/x-www-form-urlencoded ; charset=UTF-8

你也许可以声明你的表单

<form enctype="application/x-www-form-urlencoded;charset=UTF-8">

<form accept-charset="UTF-8">

强制编码。

一些引用:

http://www.htmlhelp.com/reference/html40/forms/form.html

http://www.w3schools.com/tags/tag_form.asp

关于http - 检测 HTTP POST 请求的字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/708915/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com