既然后面charset設(shè)置為gb2312,那么你打開這個網(wǎng)頁,然后另存,保存的時候記得把編碼改成g">
網(wǎng)頁中文亂碼完美解決方案

網(wǎng)頁中文亂碼完美解決方案

ID:35286704

大小:22.21 KB

頁數(shù):7頁

時間:2019-03-23

網(wǎng)頁中文亂碼完美解決方案_第1頁
網(wǎng)頁中文亂碼完美解決方案_第2頁
網(wǎng)頁中文亂碼完美解決方案_第3頁
網(wǎng)頁中文亂碼完美解決方案_第4頁
網(wǎng)頁中文亂碼完美解決方案_第5頁
資源描述:

《網(wǎng)頁中文亂碼完美解決方案》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、網(wǎng)頁中文亂碼既然后面charset設(shè)置為gb2312,那么你打開這個網(wǎng)頁,然后另存,保存的時候記得把編碼改成gb2312,不然的話charset就會誤導(dǎo)瀏覽器,這樣就會亂碼了。2.php編網(wǎng)頁出現(xiàn)亂碼,我把編碼改成utf-8前臺顯示正常了,但是有東西輸入到數(shù)據(jù)庫再提取出來還是不正常3.apache+php+mysql?為何會出現(xiàn)亂碼我們在做PHP項目的時候,經(jīng)常會遇到中文亂碼的問題,有時候編碼問題還導(dǎo)致MYSQL的報錯。中文亂碼總共有三個原因1:AP

2、ACHE服務(wù)器設(shè)置導(dǎo)致亂碼2:PHP,或者HTML頁面編碼導(dǎo)致中文亂碼3:MYSQL數(shù)據(jù)庫的表以及字段編碼導(dǎo)致中文亂碼我們分別從這三個部分來探究PHP程序設(shè)計中的編碼問題在這之前我們要了解一些基本理論:1、文件編碼每個文件在保存的時候都可以選擇以什么編碼保存,例如用WINDOWS的記事本創(chuàng)建一個文件可以選擇ANSI以及UTF8等等編碼。我們選擇了什么編碼該文件就以這種編碼方式保存在硬盤上。讀取該文件數(shù)據(jù)的時候也會指定一種編碼來打開,如果指定的編碼與文件保存的時候的編碼不一樣的話就會出現(xiàn)亂碼2、HTML的編碼在網(wǎng)頁頭部一般有這樣一個區(qū)域這個的意思是讓客戶端知道,接下來輸出的是ht

3、ml代碼(text/html),并且以下輸出的內(nèi)容都將是utf-8編碼的。如果我們用記事本創(chuàng)建一個HTML文件該文件包含但是在保存的時候卻以ANSI編碼格式保存,那么我們用瀏覽器打開這個文件時,瀏覽器看見META行的UTF8編碼設(shè)置后就將文件以UTF8格式輸出,而文件本來是ANSI編碼,這樣便出現(xiàn)了中文亂碼。一:APACHE服務(wù)器編碼在APACHE配置文件中有一行是編碼的設(shè)置默認的是AddDefaultCharsetISO-8859-1,大部分人認為應(yīng)該將這句改為AddDefaultCharsetUTF-8。而蝸牛認為這是誤人子弟。這項配置是告訴APACHE服務(wù)器選用什么樣的編

4、碼來輸出WEB頁面(這樣做會忽略,HTML頁面中的頁面編碼的設(shè)置EG:),如果我們建立一個GB2312的頁面就會出現(xiàn)中文亂碼。所以最好的方法是將AddDefaultCharsetISO-8859-1這一項注釋掉#AddDefaultCharset二:PHP編碼問題php最終生成的是文本文件,而他要從數(shù)據(jù)庫中取出文本數(shù)據(jù),還要把文本數(shù)據(jù)寫到數(shù)據(jù)庫中。由于MYSQL并不知道PHP發(fā)送給他的是什么編碼的數(shù)據(jù),所以需要客戶端PHP告訴他存取的是什么編碼的數(shù)據(jù)。然后MYSQL會自動將PHP傳送來的數(shù)據(jù)轉(zhuǎn)換成目標編碼格式的數(shù)據(jù)。比如:PHP要將文本數(shù)據(jù)DATE寫入到數(shù)據(jù)庫字段field中,

5、PHP發(fā)送的是UTF-8編碼的數(shù)據(jù),而DATE是以GB2312方式存儲的。這時候PHP通過設(shè)置告訴MYSQL我發(fā)的是UTF-8格式,MYSQL接到數(shù)據(jù)后說:”我知道了,來誰專門負責將UTF-8轉(zhuǎn)換成GB2312“于是MYSQL中的一個專門負責此事的小兵跑來把數(shù)據(jù)拿走經(jīng)過加工放到指定位置,如果PHP誤將UTF-8編碼的數(shù)據(jù)當作GB2312編碼送給MYSQL的時候,MYSQL會叫上次那個負責UTF-8—-GB2312的小兵來負責,而小兵不管三七二十一按同樣方法轉(zhuǎn)換存起來,這就出現(xiàn)了錯誤,亂碼就產(chǎn)生了。取數(shù)據(jù)的時候也一樣,PHP要告訴MYSQL要取出什么樣編碼的數(shù)據(jù)。PHP通過cha

6、racter_set_client告訴MYSQL,php存入數(shù)據(jù)庫的是什么編碼方式PHP通過character_set_results告訴MYSQL,php需要取什么樣編碼的數(shù)據(jù)PHP通過character_set_connection告訴MYSQL,PHP查詢中的文本,使用什么編碼就算上面的大家都注意了,還有個問題也可能導(dǎo)致亂碼。那就是PHP文件(生成的HTML頁面)本身的編碼問題如果MYSQL傳來的數(shù)據(jù)編碼與PHP本身編碼不一致也會導(dǎo)致亂碼三:MYSQL編碼問題Mysql目前支持多字符集,并且,支持在不同的字符集之間轉(zhuǎn)換(便于移植和支持多語言)。Mysql可以設(shè)置服務(wù)器級字

7、符集、數(shù)據(jù)庫級字符集、數(shù)據(jù)表級字符集、表列的字符集,實際上,最終使用字符集的地方是存儲字符的列,比如,你設(shè)置table1中col1列是字符類型,col1才用到了字符集,如果table1表的col2列是int類型,col2不使用字符集的概念。服務(wù)器級字符集、數(shù)據(jù)庫級字符集、數(shù)據(jù)表級字符集都是為列的字符集做默認選項的。Mysql一定有一個字符集,可以通過啟動時加參數(shù)指定,也可以編譯時指定,也可以在配置文件里指定。Mysql服務(wù)器字符集,只是做為數(shù)據(jù)庫級的默認值。創(chuàng)建數(shù)據(jù)庫時,你可以指定字符集,如

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。