[英]Java String Encoding to UTF-8
我有一些HTML代碼,我存儲在Java.lang.String變量中。 我將該變量寫入文件,並在將字符串變量的內容寫入文件系統上的文件時將編碼設置為UTF-8。 我打開那個文件,一切看起來很棒,例如→顯示為右箭頭。
但是,如果jsp頁面使用相同的String(包含相同的內容)來在瀏覽器中呈現內容,則諸如→之類的字符將顯示為問號(?)
在String變量中存儲內容時,我確保使用:
String myStr = new String(bytes[], charset)
而不只是:
String myStr = "<html><head/><body>→</body></html>";
有人可以告訴我為什么String內容完美地寫入文件系統但不在jsp /瀏覽器中呈現?
謝謝。
但是沒有在jsp /瀏覽器中呈現?
您還需要設置響應編碼。 在JSP中,您可以使用
<%@ page pageEncoding="UTF-8" %>
這實際上與在HTML <head>
設置以下元標記的效果相同:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
可能性:
Content-Type: text/html; charset=utf-8
您的HTTP標頭中的Content-Type: text/html; charset=utf-8
。 懶惰的開發人員(= me)使用Apache Common Lang StringEscapeUtils.escapeHtml http://commons.apache.org/lang/api-release/org/apache/commons/lang/StringEscapeUtils.html#escapeHtml(java.lang.String)這將幫助您處理所有'奇怪'字符。 讓瀏覽器對html實體進行最終翻譯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.