开发者

Handling Spanish characters in Java/JSP

开发者 https://www.devze.com 2023-01-06 13:57 出处:网络
I have a small webapp which handles a lot of Spanish text. At one point in the code, a JSP page responds with a Json String containing some of this text. If I print the String to the Console, it look

I have a small webapp which handles a lot of Spanish text.

At one point in the code, a JSP page responds with a Json String containing some of this text. If I print the String to the Console, it looks like jibberish. But if I examine the header/content of the response in Chrome Developer Tools, it looks correct. It is transferred in the correct encoding. This part of the webapp functions as expected.

At another point in the code, a different JSP page responds with HTML. Some of this HTML contains more of the Spanish text. This time, the text is transferred (and displayed) as jibberish.

What are potential reasons that this could be happening? Both times, I'm just printing the text using out.print. Why does it work at one point, but not in other?

Examples:

// 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开发者_如何学Go
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


You need to set the encoding which the JSP/Servlet response should use to print the characters and instruct the webbrowser to use the same encoding.

This can be done by putting this in top of your JSP:

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

Or if you're actually doing this in a Servlet:

response.setCharacterEncoding("UTF-8");

The "jibberish" when using System.err is a different problem. You need to set the encoding of the console/logfile which is been used to print this information to. If it's for example Eclipse, then you can set it by Window > Preferences > General > Workspace > Text File Encoding.

See also:

  • Unicode - How to get the characters right? - Fixing JSP/Servlet response
  • Unicode - How to get the characters right? - Fixing development environment
0

精彩评论

暂无评论...
验证码 换一张
取 消