代碼編寫過程中,遇到中文的亂碼問題,我們一定會想到修改編碼為UTF-8,但這並不一定對所有的情況都適用。
編碼的簡單流程:
我們編寫的中文字符最終要在瀏覽器中顯示,需要經過編碼和解碼,編碼和解碼需要滿足兩個條件才能使顯示出來的字符是正常不亂碼的
-
編碼方式和解碼方式要支持所使用的文字(例如中文);
-
編碼方式和解碼方式要相同。
GBK和UTF-8都是支持中文的,但瀏覽器使用的解碼方式大多都是GBK模式的。因此我們使用UTF-8來編碼,最終瀏覽器使用GBK來解碼,這就產生了亂碼!
代碼編寫時使用UTF-8來編碼,並且告訴瀏覽器“我使用的是UTF-8來編碼,請你也使用UTF-8進行解碼操作,否則將產生亂碼問題!”
因此兩行代碼即可解決:
resp.setCharacterEncoding("utf-8"); //編碼方式 resp.setContentType("text/html;charset=utf-8"); //要求瀏覽器要使用的解碼方式