簡體   English   中英

Java字符串編碼為UTF-8

[英]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>&rarr;</body></html>";

有人可以告訴我為什么String內容完美地寫入文件系統但不在jsp /瀏覽器中呈現?

謝謝。

但是沒有在jsp /瀏覽器中呈現?

您還需要設置響應編碼。 在JSP中,您可以使用

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

這實際上與在HTML <head>設置以下元標記的效果相同:

<meta http-equiv="content-type" content="text/html; charset=utf-8">

可能性:

  1. 瀏覽器不支持UTF-8
  2. 你沒有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM