java - Java 应用程序服务器如何决定在 HTTP Content-type header 中发送什么字符集?

标签 java http

my current project ,我已经忘记了字符编码,只是让应用程序服务器做正确的事情。这在一段时间内运行良好。例如,我能够将我的应用程序中的区域设置切换为简体中文/中国,并且在任何最新的 Firefox 或 Chrome 浏览器中都能正常查看 UTF-8 字符。发生了一些变化(我仍在尝试弄清楚是什么)。内容仍然是 UTF-8 编码的,但有时 Content-type header 是 setting the charset wrong :

Content-Type:text/html;charset=ISO-8859-1

...导致浏览器中出现乱码而不是汉字。如果我在浏览器中临时强制编码为 UTF-8,字符会正确显示。

真正有助于确定问题的是了解应用程序服务器(或 Web 开发框架,如 struts 或 spring?)如何决定将什么放入此 header 中!有什么想法吗?

最佳答案

您使用的是什么网络技术?例如在 servlet 中你有 ServletResponse#setCharacterEncoding() .在 JSP 中:

<%@ page contentType="text/html; charset=UTF-8" %>

最终,每个 Web 框架最终都会使用上述两种框架中的一种。

关于java - Java 应用程序服务器如何决定在 HTTP Content-type header 中发送什么字符集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5184125/

相关文章:

java - 我如何使用引用的库

java - 如何返回 DocumentSnapShot 作为方法的结果?

ios - 如何在 Swift 中从 WKWebView 获取 POST 请求正文?

android - 如何在Android中创建HTTP服务器?

http - CFHEADER 值可以被其他代码读取吗?

PHP/HTTP-API - 如何从外部调用不同的 PHP 文件?

http - nginx 代理请求缓冲未按预期工作

java - Mojo 开发 - 处理多模块项目中 Unresolved 依赖关系

java - Mockito when...thenResult 总是返回 null

java - 当同一节点有很多关系时,Neo4jRepository @Query 结果错误