您好,登錄后才能下訂單哦!
在JSP/servlet中的中文解決辦法XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
Java的中文問題一直很讓人頭痛。也許是因為有中文有很多字符集的緣故吧。
這里我們先說Servlet的問題。
眾所周知,Servlet是需要預先編譯的,就不得不談到java的編譯問題。
Java內容是使用Unicode字符集的。所以基本上可以對大多數語言提供支持(當然,如果你會某種特殊的不常見的語言,Java就不一定支持了),所以相對來說,Java對多語言的支持相當好,甚至你可以使用中文的類名和中文的方法名,編譯運行同樣沒有問題。但是大多數的操作系統并不是都對Unicode提供良好的支持,至少Javac默認是使用系統自帶的字符集來進行編譯,例如:如果你的操作系統是中文Win2k,那么你的默認字符集就是GBK;如果你使用的是日文的win2k,那么你的默認字符集就是MS932。而Javac默認是調用系統的字符集進行編譯,也就是Javac中的Encoding參數默認的是使用系統的字符集。知道了這一點這個問題就容易解決了。如果你的程序中包含了不被當前系統默認字符集支持的字符,那么你需要制定你的字符集來進行編譯了。不過偶爾也會有一些問題,不過這個不是java的問題了。就拿記事本來說,如果你用記事本寫程序那么保存程序的時候就會使用記事本默認的Ansi字符編碼方式來保存。這種情況同樣也容易導致亂碼的產生,所以在使用ide的時候最好同時制定他的編碼方式。
現在說說Jsp的問題。
這個處理起來相對簡單一些,只要你在頁頭上指定了類似Mailto:%25@page%20language=%22java%22%20contentType=%22text/html;charset=UTF-8%22%20%25">%@page language="java" contentType="text/html;charset=UTF-8" %這樣的語句,基本上就沒有問題了。同樣需要你的IDE制定一個字符編碼,避免出現亂碼問題。
以上簡單的解決了中文亂碼的問題。不過我個人覺得這并不是一個最好的解決辦法,因為你還受到系統和IDE的字符集的限制,在實現跨平臺的時候還是容易出現問題。我要接受我比較欣賞的一種方法,也許這種方法大家現在都已經在用了。
我推薦使用Properties文件來保存相應的文本信息,這樣做有如下優點:
1. 可以很靈活的替換文本,實現多語言界面。
2. 可以根本性的避免亂碼問題
第一點我不說大家也能體會得到。重點說說第二點。
jdk中自帶了一個nactive2acsii的命令,這個命令是把當前字符轉化成ascii字符。
當前并不是所有的操作系統都支持unicode或者其他的什么字符編碼,但是據我所知對于ascii碼都是支持的,所以我們只要把我們的文本轉化成ascii碼就可以了。而通過nactive2acsii就可以實現這個功能了。這個程序在Java_Home/Bin下面。各位可以自己試驗一下。
版權歸iBeyond所有,你也許可以通過http://www.ibeyond.org得到更多信息,你也可以通過csdn@ibeyond.org和我聯系。免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。