各種中文亂碼解決辦法

2022-05-21 16:30:52 字數 2293 閱讀 2590

在程式設計的時候會遇到各種中文亂碼,這裡進行統計以便以後查閱

1、前端頁面元素中文亂碼

會出現下面亂碼

頁面上的元素也就是html內的元素,是中文的會出現亂碼,而從後台獲取的中文不會出現亂碼。

解決方法:頁面上設定編碼方式為utf-8

2、url傳參、get方式傳參出現中文亂碼,如下出現這種情況,要先確定引數在前台頁面上不是亂碼的,可以alert()一下,看引數是否亂碼

解決辦法1:

對於以get方式傳輸的資料,request預設使用iso8859-1這個字元編碼來接收資料,客戶端以utf-8的編碼傳輸資料到伺服器端,而伺服器端的request物件使用的是iso8859-1這個字元編碼來接收資料,伺服器和客戶端溝通的編碼不一致因此才會產生中文亂碼的。

解決辦法:在接收到資料後,先獲取request物件以iso8859-1字元編碼接收到的原始資料的位元組陣列,然後通過位元組陣列以指定的編碼構建字串,解決亂碼問題。

解決方法2:修改tomcat伺服器的編碼方式,可以在server.xml裡面設定

uriencoding="utf-8"/>
設定成紅字部分,但是有時也是不可用的,因為即使這裡設定的是utf-8但是其他地方設定成其他編碼方式會覆蓋掉這個設定,仔細檢查各個地方的編碼。

解決辦法3:中文引數進行編碼處理
?id="+encodeuri(encodeuri("中文引數"));

後台:
string name = request.getparameter("name");

string str = urldecoder.decode(name,"utf-8");

3、post方式出現中文亂碼原因:因為伺服器和客戶端溝通的編碼不一致造成的,因此解決的辦法是:在客戶端和伺服器之間設定乙個統一的編碼,之後就按照此編碼進行資料的傳輸和接收。

解決方法:由於客戶端是以utf-8字元編碼將表單資料傳輸到伺服器端的,因此伺服器也需要設定以utf-8字元編碼進行接收

1、後台**

2、如果使用的是框架的話,可以統一設定字元過濾器,這裡以 springmvc為例:

字符集過濾器

encodingfilter

class>org.springframework.web.filter.characterencodingfilterclass>

字符集編碼

encoding

utf-8

/*

3、springboot 這樣設定: 建立乙個類繼承webmvcconfigureradapter 

public

class mywebmvcconfigureradapter extends

webmvcconfigureradapter

@override

public

void

configuremessageconverters(

list

>converters)

@override

public

void

configurecontentnegotiation(

contentnegotiationconfigurer configurer)

}

4、使用註解@requestbody 導致接收的中文引數亂碼,可以參考我的這篇部落格(比較詳細)

ajax php中文亂碼解決辦法

ajax的亂碼的出現在的原因 www.jiedichina.com 南京捷帝 由於xmlhttp採用的是unicode編碼上傳資料,而一般頁面採用的是gb2312,這就造成顯示頁面時產生亂碼。而當在獲取頁面時的xmlhttp返回的是utf 8編碼,這就造成了顯示產生亂碼。解決方法之一就是在php檔案...

ajax php中文亂碼解決辦法

今天在做乙個ajax效果的時候遇到乙個問題,前台輸入的中文傳入php檔案後亂碼,弄了一下午才好。現在把解決辦法寫下來 ajax的亂碼的出現在的原因 由於xmlhttp採用的是unicode編碼上傳資料,而一般頁面採用的是gb2312,這就造成顯示頁面時產生亂碼。而當在獲取頁面時的xmlhttp返回的...

centos 中文亂碼解決辦法

緣由 本人在虛擬機器中安裝centos 5.3,起初安裝時選擇了english,後來使用的過程中發現開啟網頁,會出現中文亂碼,無法正常顯示。當然,本地檔案中的中文更是無法顯示。若是將系統語言language設定成中文,則整個系統全部亂碼。綜上 解決系統中文亂碼的步驟為 1.在光碟中 找到這兩個包,安...