簡體   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