編碼轉碼的簡單記錄

2021-09-24 04:26:53 字數 1145 閱讀 8071

1.參考

2.出現亂碼的本質原因是編碼方式和解碼顯示的方式不同,比如瀏覽器預設gbk,放到web容器裡預設是iso8859-1,gbk的編碼,在iso裡含義不同或者沒有,所以需要先用iso解碼,再重新用gbk編碼

3.位元組和字元之間的對應關係就是字符集

4.另一種是uri編碼,這種其實是用另一種字元方式表示字元,而非位元組和字元的轉化

(1).如果是中文的gbk(gb2312)編碼,則乙個漢字對應兩組%xx,即%xx%xx

(2).如果是中文的utf-8編碼,則乙個漢字對應三組%xx,即%xx%xx%xx

5.瀏覽器向應用伺服器傳送請求一般通過三種方式:1.提交表單,2.超連結,3.ajax;

表單提交:post採用頁面編碼方式提交;get採用頁面編碼方式並進行uri轉碼後拼接到url後面提交

超連結(如window.open或者a標籤等):需要用encodeuri()函式轉碼為uri編碼,否則會將漢字顯示成??

6.不同伺服器預設解碼方式不同,tomcat5.5中getparameter獲取get方法或超連結傳過來的引數時缺省會用iso8859-1進行解碼,例如瀏覽器傳送utf-8的編碼的請求,tomcat5.5的getparameter使用iso8859-1解碼,這時的結果是錯的,如果要獲得正確的值,需要在tomcat5.5的getparameter的時候採用utf-8進行解碼,先然後使用utf-8字符集解碼為字串:new string(getparameter().getbytes(「iso8859-1」),「utf-8」)

7.從伺服器向瀏覽器輸出時,伺服器向瀏覽器傳送的也是經過編碼成位元組流在網路上傳輸,瀏覽器接收到位元組流之後使用指定的字符集解碼成字串再進行展現,如果這兩個環節的字符集不一致也會導致亂碼的問題,如果在servlet中直接進行輸出,可以通過response.setcharacterencoding(「utf-8」),setcontenttype(「text/html;charset=utf-8」),setheader(「content-type」,「text/html;charset=utf-8」)進行設定

編碼與轉碼

因為有些符號在url中是不能直接傳遞的,如果要在url中傳遞這些特殊符號,那麼就要使用他們的編碼了。編碼的格式為 加字元的ascii碼,即乙個百分號 後面跟對應字元的ascii 16進製制 碼值。例如 空格的編碼值是 20 下表中列出了一些url特殊符號及編碼 十六進製制值1.url 中 號表示空格...

關於字元的編碼和轉碼

在實際開發中,會經常遇到字元編碼的轉換,這裡介紹一種url和string相互轉換的方法 try catch unsupportedencodingexception e 列印結果 data1 e5 8c 97 e4 ba ac,data2 北京市 這樣就很清楚的知道了,urlencoder.enco...

python字元編碼與轉碼

詳細文章 需知 1.在python2預設編碼是ascii,python3裡預設是unicode 2.unicode 分為 utf 32 佔4個位元組 utf 16 佔兩個位元組 utf 8 佔1 4個位元組 so utf 16就是現在最常用的unicode版本,不過在檔案裡存的還是utf 8,因為u...