繁体   English   中英

在Java / JSP中处理西班牙语字符

[英]Handling Spanish characters in Java/JSP

我有一个小型的Webapp,可以处理许多西班牙语文本。

在代码的某一点上, 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

您需要设置JSP / Servlet响应用于打印字符的编码,并指示Web浏览器使用相同的编码。

可以通过将其放在JSP顶部来完成:

<%@ page pageEncoding="UTF-8" %>

或者,如果您实际上是在Servlet中执行此操作:

response.setCharacterEncoding("UTF-8");

使用System.err时的“乱码”是一个不同的问题。 您需要设置用于打印此信息的控制台/日志文件的编码。 如果是Eclipse,则可以通过“ 窗口”>“首选项”>“常规”>“工作区”>“文本文件编码”进行设置

也可以看看:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM