php字元編碼轉換問題

來源:互聯網
上載者:User
  1. $string=mb_convert_encoding($string, 字元輸出編碼, 原字元編碼);
複製代碼

例如:網頁使用gbk編碼,字串使用utf-8編碼,將字元轉換為網頁顯示編碼。

  1. echo mb_convert_encoding("php編碼轉換", "gbk", "utf-8");
複製代碼

總結:推薦使用mb_convert_encoding函數,該函數無iconv轉換字元錯誤問題。

對字串進行編碼轉換,要轉成UTF-8。如果知道原字串編碼,就可以使用大家都熟悉的iconv函數,但現在是不知道原字串的編碼,可能是GBK,也可能原來就是UTF-8,就不能使用這個方法了。如果可以擷取字串編碼類別型,或者有一個自動識別原字串編碼的編碼轉換函式就好了。結果找到了mb_convert_encoding函數就是那個可以自動識別原字串編碼的函數,但在使用中,發現GBK中的某些漢字被它轉成了亂碼。

後來又在php手冊上找到了is_utf8函數,然後結合iconv函數,問題得以解決。

用到的編碼轉換函式:

  1. function is_utf8($string) {
  2. return preg_match(’%^(?:
  3. [\x09\x0A\x0D\x20-\x7E] # ASCII
  4. | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
  5. | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
  6. | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
  7. | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
  8. | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
  9. | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
  10. | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
  11. )*$%xs’, $string);
  12. } // function is_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.