【发布时间】:2010-07-05 21:49:07
【问题描述】:
我有一个处理大量西班牙语文本的小型 web 应用程序。
在代码中的某个位置,JSP 页面以包含此文本的 Json String 响应。如果我将String 打印到控制台,它看起来像乱码。但是,如果我在 Chrome 开发人员工具中检查响应的标题/内容,它看起来是正确的。它以正确的编码传输。 webapp 的这一部分按预期运行。
在代码的另一点,不同的JSP 页面以HTML 响应。其中一些HTML 包含更多的西班牙语文本。这一次,文本被传输(并显示)为乱码。
发生这种情况的潜在原因是什么?这两次,我只是使用out.print 打印文本。为什么它在某一时刻有效,而在另一时刻无效?
示例:
// In a file who's only output is the json string
String jsonString = ...
System.err.println(jsonString); // prints jibberish
out.println(jsonString); // looks correct when the response is viewed in Chrome Developer tools, and looks correct in a browser
...
// In a file who's output is a complete html page
String spanishText = ...
out.println("<label>" + spanishText + "</label>"); // looks like jibberish when the response is viewed in Chrome developer tools, and shows up as jibberish in a browser
【问题讨论】:
标签: java jsp tomcat character-encoding tomcat6