gpt4 book ai didi

java - 在 Java/JSP 中处理西类牙字符

转载 作者:行者123 更新时间:2023-11-28 22:23:30 25 4
gpt4 key购买 nike

我有一个处理大量西类牙语文本的小型网络应用程序。

在代码中的某个位置,JSP 页面以包含部分文本的 Json String 进行响应。如果我将 String 打印到控制台,它看起来像乱码。但是,如果我在 Chrome 开发者工具中检查响应的 header /内容,它看起来是正确的。它以正确的编码传输。 Web 应用程序的这一部分按预期运行。

在代码的另一处,不同的 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 响应用于打印字符的编码,并指示网络浏览器使用相同的编码。

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

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

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

response.setCharacterEncoding("UTF-8");

使用 System.err 时的“乱码”是另一个问题。您需要设置用于打印此信息的控制台/日志文件的编码。例如,如果是 Eclipse,则可以通过Window > Preferences > General > Workspace > Text File Encoding 进行设置。

另见:

关于java - 在 Java/JSP 中处理西类牙字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3182328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com