解決亂碼的方法(轉

2021-08-30 20:10:01 字數 1339 閱讀 8538

出現亂碼怎麼辦,解決亂碼的方法一,出現亂碼的原因分析

1,儲存檔案時候,檔案有自己的檔案編碼,就是漢字,或者其他國語言,以什麼編碼來儲存

2,輸出的時候,要給內容指定編碼,如以網頁的形勢輸入時

3,從資料庫取出資料時,搞不清楚資料庫,設定的字符集

4,以漢字為例,漢字本來也有編碼的,乙個漢字gbk要二個字元,而utf8要三個字元

上面說了有可能引起亂碼的潛在原因,我現在把它們排列組合一下。

第一種情況,儲存檔案和顯示編碼的不一致

假如儲存檔案時候,你用的utf8編碼,網頁輸出時,你設定的是gbk編碼,這樣就會出現亂碼,

第二種情況,儲存檔案和資料庫的儲存的字元不一致

假如,儲存檔案的編碼和網頁顯示的編碼一樣時,還是出現亂碼了,例如,你儲存檔案時,用的utf8編碼,而你資料庫用的是gb2312字符集來儲存資料。

第三種情況,已經亂碼了,你還認為沒有

當你發現出現亂碼時,去改變儲存檔案的編碼的時候,utf8情況是好的,當你把它換成gbk的話就亂碼了,但是你還以為是好的。這也是出現亂碼的原因。這種情況會經常出現。

第四種情況,資料庫裡面本來就是亂碼

資料的字符集,儲存檔案的編碼,網頁顯示編碼都一樣了,還是出現亂碼了,這種情況大多數,是資料入資料庫的時候,就亂碼了,這種情況是比較麻煩的。

二,我解決亂碼的方法,百試不爽

我把這種方法起個名子叫庖丁解牛法。哈哈。資料庫,儲存檔案編碼,顯示時候的編碼必須一致,並且以資料庫為準

第一種,資料庫和儲存檔案的編碼是utf8,網頁顯示呢是gb2312,這個時候,我們就要改顯示編碼了

第二種,資料庫和網頁顯示都是utf8,儲存檔案用的是gb2312,這個時候呢,要注意一種,直接把儲存檔案的編碼改過,是不行的,在改編碼之前,把檔案的內容先copy一下,編碼改過以後,在把剛才copy的內容粘回去,這樣就ok了.

第三種,資料庫用的utf8,儲存檔案和顯示編碼是gb2312,這個時候呢,你可以用程式自帶的函式把從資料庫取出的資料進行一下轉碼把,utf8轉成gb2312這樣就不用去改變檔案自己的編碼了,以及顯示編碼了。以php為例,mb_convert_encoding($string,」gb2312″,」utf8″);

第四種,資料庫亂碼,是資料錄入時候,資料本身和資料庫儲存編碼不一樣造成的。例如:資料庫的儲存編碼是utf8,在資料入庫的時候,加上乙個mysql_query(「set names utf8;」);

三,亂碼表現的形勢

亂碼的表現呢,我是遇到過二個,

1)就是出現在的字型亂碼了,變成怪七怪八的字元了

2)就是直接是空白頁面,檢視原始碼呢,什麼都沒有,像這種情況,有的時候,很想起是因為是亂碼造成的。右擊頁面在,檢視屬性,改一下編碼就知道是不是因為亂碼引起的空白頁面了。

PHP出現亂碼,解決亂碼的方法

一,出現亂碼的原因分析 1,儲存檔案時候,檔案有自己的檔案編碼,就是漢字,或者其他國語言,以什麼編碼來儲存 2,輸出的時候,要給內容指定編碼,如以網頁的形勢輸入時 3,從資料庫取出資料時,搞不清楚資料庫,設定的字符集 4,以漢字為例,漢字本來也有編碼的,乙個漢字gbk要二個字元,而utf8要三個字元...

解決request亂碼的方法

第一種直接在web.xml加上過濾器,簡單粗暴 characterencodingfilter org.springframework.web.filter.characterencodingfilter encoding utf 8 forceencoding true 第二種用 1實現handl...

解決xmlhttp亂碼的方法

我最近也在研究xmlhttp亂碼的解決辦法,我測試了一下,下面是測試 如果能把escape轉換後的編碼再轉換成中文,輸出的時候反操作就解決問題了。剛才的那個結果測試已經通過了,還有乙個更簡單的方法,原來 escape和unescape在js和asp裡面可以通用,所以直接在輸出反編碼就得到了中文的輸出...