星期二, 2月 27, 2007

Java 與 UTF-8 編碼 (四)


Java 與 UTF-8 編碼 (一) 裡面有提到我上面的例子使用 UTF-8 格式來存 JSP 檔案。那現在我們試看看如果使用不同的編碼格式來存檔,結果會變成如何呢?


我使用 Notepad++ 把 JSP 檔案編譯成 ANSI 格式,另外我在 JSP 檔案裡面加入中文的訊息,包括 title 以及 body 都加入中文,JSP 內容如下:



從上面的檔案看起來,我們也加入了 :



<%@page contentType="text/html; charset=UTF-8"%>



內容從 Notepad++ 看起來跟之前的 JSP 檔案也差不多,那執行起來的結果呢?如下圖:



發現所有中文的部分都變成亂碼了。這時候 ANSI 編碼以及 UTF-8 又衝突了,怎麼解決這問題呢?很簡單,只要把 pageEncoding="big5" 加入 JSP Page 宣告中:



<%@page contentType="text/html; charset=UTF-8" pageEncoding="big5"%>



出來的結果就正常了。pageEncoding 是用來宣告你的 JSP 檔案是以什麼 Format 來存檔的,如果你有很多檔案都是已經寫好了,而且也都不是使用 UTF-8 格式來存檔的,那最快的方式就是使用 pageEncoding 來宣告你的存檔格式。不過我還是建議存檔直接以 UTF-8 格式來存檔是最好的了。

沒有留言: