php中文亂碼問題解決方案匯總

來源:互聯網
上載者:User
朋友們剛學習php的時候,常常會發現瀏覽器中輸出的內容會出現一堆的亂碼問題,尤其是輸出中文的時候。為什麼會出現有亂碼的情況呢?一般來說,亂碼的出現有2種原因,一種是由於編碼(charset) 設定錯誤,導致瀏覽器以錯誤的編碼來解析,從而出現了滿屏亂七八糟的“天書”,第二種就是檔案被以錯誤的編碼開啟,然後儲存,比如一個文字檔原先是GB2312 編碼的,卻以UTF-8 編碼開啟再儲存,就會出現亂碼的問題。在下面的文章中,我們就來聊聊php中文亂碼問題和解決方案。

php中文亂碼問題

1. php如何解決中文亂碼問題?

第一種:解決HTML中中文亂碼問題方法

如果你的HTML檔案檔案出現了亂碼問題,那麼你可以在head標籤裡面加入UTF8編碼(國際化編碼):UTF-8是沒有國家的編碼,也就是獨立於任何一種語言,任何語言都可以使用的。

第二種、HTML和PHP混合的頁面解決方案

第三種、純PHP頁面的中文亂碼問題(資料是靜態)

第四種、PHP+Mysql中文亂碼問題

這個除了按照第三種所說的操作之外,還要在你的資料查詢/修改/增加之前加入資料庫編碼。而且,值得注意的是,這裡的UTF8和之前的不一樣,中間是沒有橫線的。

2. PHP使用strrev翻轉中文亂碼問題的解決方案

header("Content-Type: text/html; charset=utf-8");$str = '處理使用strrev()函數時的亂碼問題';function cnstrrev($str){  $len = strlen($str);  for($i = 0; $i < $len; $i++)  {    $char = $str{0};    if(ord($char) > 127) //ord()函數取得第一個字元的ASCII碼,如果大於0xa0(127)的話則是中文字元    {      $i+=2;//utf-8編碼的情況下,一個中文字元佔三個位元組      if($i < $len)      {        $arr[] = substr($str, 0, 3);//utf-8編碼的情況下,一個中文字元佔三個位元組        $str = substr($str, 3);      }    }    else    {      $arr[] = $char;      $str = substr($str, 1);//否則為非中文,佔一個字元    }  }  return join(array_reverse($arr));//以相反的元素順序返回數組:}echo $str.'+'.cnstrrev($str);

3. php中json_encode UTF-8中文亂碼的解決方案

這種簡單的做一個代碼轉換,urlcode之後再返回所需數組

public static function encodeOperations ($array)  {      foreach ((array)$array as $key => $value) {          if (is_array($value)) {          encodeOperations($array[$key]);          } else {          $array[$key] = urlencode(mb_convert_encoding($value,'UTF-8','GBK'));          }      }  return $array;  }

4. php url地址欄傳中文亂碼解決方案集合

url編碼
文法: string urlencode(string str);
傳回值: 字串
函數種類: 編碼處理

url解碼
還原 URL 編碼字串。
文法: string urldecode(string str);
傳回值: 字串
函數種類: 編碼處理

5. php中json_encode處理gbk與gb2312中文亂碼問題的解決方案

可見即使用UTF8編碼的字元,使用json_encode也出現了中文亂碼。解決辦法是在使用json_encode之前把字元用函數urlencode()處理一下,然後再json_encode,輸出結果的時候再用函數urldecode()轉回來。

6. PHP中Ajax中文亂碼問題解決

因為XMLHttp在處理返回的responstText的時候把responstBody按UTF-8編碼進行解碼的,如果伺服器端送出的資料流的確是UTF-8編碼,那麼中文字就會正確顯示,但如果是GBK或是其他編碼則會出現上述情況。

相關問答

1. 碰到一個中文亂碼引起的神奇的問題

2. php 中文亂碼

3. 網頁中文亂碼無法解決,見圖

【相關推薦】

1. php中文網免費視頻教程:《php.cn獨孤九賤(4)-php視頻教程》

2. php中文網相關文章:《php入門教程之一周學會PHP》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.