http请求报文实体部分的编码可以自己设置为非UTF-8吗
【http请求报文实体部分的编码可以自己设置为非UTF-8吗】 不管是request还是response,HTTP都可以分成头部(元信息)和消息体(信息)两部分。消息体的属性通过头部来定义,对于MIME类型来说,就是Content-Type,比如text/plain,text/html,application/json等等。字符编码是Content-Type的一个可选属性,加上编码的类型就变成了:
Content-Type: text/plain;charset=utf-8
如果希望传输其他编码,就替换一下charset属性就行了:
Content-Type: text/plain;charset=gbk
一般来说标准并没有规定在不存在charset的时候如何理解字符编码,具体实现上也有很大差异,某些Content-Type不是字符类型数据,自然也没有什么字符编码。不过某些Content-Type则有默认的字符编码,例如application/x-www-form-urlencoded一般默认为UTF-8编码,application/json一般默认为UTF-8编码等等。
总结来说如果你希望上传一段text/plain类型的gbk编码的文本,就用Content-Type: text/plain;charset=gbk标识就行了。不过这只是个说明,Server如何解析,则取决于具体的实现,不一定所有Server都能正确处理charset属性。
■网友
协议头是固定的,使用form的方式,得和头部保证统一。如果直接放body,得和后端处理统一,图片不用base64都可以。对body来说,放的就是字符串
推荐阅读
- 咋解决电信营业厅对http网址的污染
- 关于用phpfsocket 写Post, 模拟http 报文怎样写入要传输的处理数据
- Python3.4和3.5区别大么
- 1、相同的网址,为啥浏览器http和https都能登录,而爬虫不行\n2、网页下载内容不全
- C语言指数函数代码
- 咋防止低中奖概率的抽奖接口不被暴力请求
- 怎样入门业余无线电
- 做一个小型仓储软件一般用啥语言
- 不小心被海外网站诈骗了咋办
- c++写http服务器不用cgi和apache该用啥
