背景
- 最近在看一本老书 <深入分析 Java Web 技术内幕> 许令波著
- 书中 第三章 提到一个 URL 编解码的问题
- 作者将 URL 分为了好几块
- URL 中大部分是用 UTF-8 编码的
- queryString(查询条件), 是用 浏览器默认的编码(书中解释说通常是 GBK)
- 书中还说, 如果要把 queryString 也设置为 UTF-8, 那么需要在 requestHeader 里添加 content-type 属性, 并在值中添加 "charset=UTF-8"
- 但是我使用 chrome( 71.0.3578.98 版本) 浏览器, 尝试在 百度 和 搜狗 的 request 里, 找这个 content-type, 没有找到
- 我发现在 queryString 里有个字段叫做 ie=utf-8
- 而且我的查询关键字, 也确实是 utf-8 的 url 编码, 我在在线的工具上转换过
我的问题
- 现在的 queryString 编码通常是怎么定的, 是浏览器还是由其他的配置
- 如果是浏览器定的话, 后端是怎么适配各种浏览器的(我不倾向这种方案)
- 如果是前端定的, 拿通常是怎么定的(比如 百度 或者 搜狗), 是我的搜索关键字经过 前端 转码后再做的请求吗?
- 如果 2 和 3 都假设错了, 那还有别的解决方案吗?
最后感谢各位大佬的帮助