Javascript和Ajax中文亂碼吐血版解決方案
今天弄了一天的Ajax中文亂碼問題,Ajax的亂碼問題分為兩種:
1. JavaScript輸出的中文亂碼,
比如:alert("中文亂碼測試");
解決的辦法比較簡單,就是把jsp里所有的charset和pageEncoding的值都設(shè)置成相同的,一般是utf-8.
2. 這第二種就是Ajax從服務(wù)器端獲得的數(shù)據(jù)出現(xiàn)亂碼的問題。(我搜了n個小時試了n中方法才找到答案)
現(xiàn)在將我搜集的比較有效的方法都與大家分享:(我使用的開發(fā)環(huán)境是Eclipse,相信其他語言和開發(fā)環(huán)境都差不太多。)
比如
var message = xmlHttp.responseText;
alert("message: "+message);
獲得這個message輸出就是亂碼
解決辦法:
1. 修改編碼。切記要將代碼備份一下,改了編碼之后中文會變?yōu)閬y碼。
在js文件上右鍵點(diǎn)擊Properties,修改Text file encode 為UTF-8(這里應(yīng)當(dāng)與jsp中的編碼相同)
同樣的將JavaScript source file和JSP的Default encoding設(shè)置為UTF-8(這里應(yīng)當(dāng)與jsp中的編碼相同,這樣以后的項(xiàng)目就都是utf-8的編碼了,推薦使用這個)
2. 注意response.setContentType("text/html;charset=utf-8");和PrintWriter out = response.getWriter();的位置關(guān)系,切記要將PrintWriter out = response.getWriter();放在response.setContentType("text/html;charset=utf-8");的后面,否則設(shè)置的編碼將無效,這也是我弄了n久都搞不定的原因?。?!
問題解決。
相關(guān)文章
JavaScript實(shí)現(xiàn)簡單隨機(jī)點(diǎn)名器
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡單隨機(jī)點(diǎn)名器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11javascript另類方法實(shí)現(xiàn)htmlencode()與htmldecode()函數(shù)實(shí)例分析
這篇文章主要介紹了javascript另類方法實(shí)現(xiàn)htmlencode()與htmldecode()函數(shù),結(jié)合實(shí)例形式分析了javascript字符編碼與解碼操作的相關(guān)技巧,需要的朋友可以參考下2016-11-11JavaScript實(shí)現(xiàn)橫線提示輸入驗(yàn)證碼隨輸入驗(yàn)證碼輸入消失的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)橫線提示輸入驗(yàn)證碼隨輸入驗(yàn)證碼輸入消失的方法,非常實(shí)用,在微信開發(fā)中經(jīng)常會用到,需要的朋友可以參考下2016-09-09如何在TypeScript?中實(shí)現(xiàn)接口的類
這篇文章主要介紹了TypeScript?中實(shí)現(xiàn)接口的類,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03