遇到了中文亂碼的問(wèn)題恐锦,網(wǎng)上搜了一圈壹士,自己做個(gè)總結(jié)記錄一下惠猿。
對(duì)于不同的請(qǐng)求方式,使用不同的處理方式:
POST方式:使用setCharacterEncoding("UTF-8")就可以解決中文亂碼的問(wèn)題魄幕。(ps:這個(gè)方法只對(duì)post請(qǐng)求方式有效)
GET方式:使用java.net.URLEncoder.encode在瀏覽器端進(jìn)行兩次編碼相艇,然后再服務(wù)端使用java.net.URLDecoder.decode進(jìn)行一次解碼。(ps:兩次編碼是為了屏蔽各種容器的不同編碼方式纯陨,如果已經(jīng)能夠明確容器使用的是UTF-8坛芽,那么進(jìn)行一次編碼就能在服務(wù)器端得到正確的中文)
小思:亂碼的原因一般存在于頁(yè)面文件編碼、頁(yè)面編碼翼抠,容器編碼咙轩,所以在這過(guò)程中都將編碼改為utf-8應(yīng)該可以避免一些奇怪的問(wèn)題。另外關(guān)于get方式机久,因?yàn)楦鞣N容器的編碼不同臭墨,所以使用兩次encode編碼,可以將字符都轉(zhuǎn)為ASCII編碼膘盖,這樣不管容器是什么編碼方式都可以正確的被UTF-8編碼識(shí)別胧弛。