php設定中文cookie,讀取echo出來亂碼,寫進mysql又沒有亂碼,為什嗎?

來源:互聯網
上載者:User
已經在所有版面設定header為utf-8。亂碼導致沒辦法和資料裡的資料就行比較,和原文不相等了。

回複內容:

已經在所有版面設定header為utf-8。亂碼導致沒辦法和資料裡的資料就行比較,和原文不相等了。

找到原因,因為寫入資料庫用函數mysql_real_escape()進行了處理,而取出沒有進行反向處理導致中文亂碼,使用stripslashes()進行處理後讀出正常。

首先你你應該看下檔案編碼,如果檔案編碼是gbk,header也木用,header只是告訴用戶端以下內容按照utf8解析,跟檔案或者內容本身編碼無關,至於資料庫會不會亂碼,這個跟字元集範圍有關係,資料庫會不會亂碼可以舉個例子:如果檔案是gbk編碼,資料庫欄位是utf8,儲存的時候set names utf8,讀取出來在utf8的檔案中展示的時候設定charset是utf8,我的理解是不會亂碼的,因為gbk的字元集範圍比utf8小,gbk內容以utf8編碼是可以儲存下的,而以utf8儲存再以utf8展示是不會亂碼的,如果以gbk讀出來我覺得是會亂碼的,雖然檔案是gbk,但是是以utf8儲存在資料庫的,而utf8是佔三位元組或以上,而gbk是兩個位元組,所以gbk展示不了utf8的內容,所以會亂碼,紙上談兵,沒有實踐過,在此謬論,我只是說我是這麼理解的!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.