當前位置:首頁 » 編程語言 » php截取字元亂碼

php截取字元亂碼

發布時間: 2025-02-13 19:53:54

1. 用php資料庫中取出的中文是亂碼,怎麼處理能使中文正常顯示

資料庫採用UTF8編碼,而頁面申明編碼是GB2312,這是最常見的產生亂碼的原因。這時候在PHP腳本裡面直接SELECT數據出來的就是亂碼,需要在查詢前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");來設定MYSQL連接編碼,保證頁面申明編碼與這里設定的連接編碼一致(GBK是GB2312的擴展)。如果頁面是UTF-8編碼的話,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如頁面申明的編碼與資料庫內部編碼一致可以不設定連接編碼。
事實上MYSQL配置文件my.ini中定義了2個默認編碼,分別是[client]里的default-character-set和[mysqld]里的default-character-set來分別設定默認時候客戶端連接和資料庫內部所採用的編碼。上面指定的編碼其實是MYSQL客戶端連接伺服器時候的命令行參數character_set_client,來告訴MYSQL伺服器接受到的客戶端數據是什麼編碼的,而不是採用默認編碼。
轉自:http://hi..com/delicious/item/37c18cf457dc142a753c4c0c

2. php中explode截取中文又亂碼,求解~~

如下面例子,在GBK編碼下會產生亂碼。
原因,在php6之前,字元是以位元組形式存在的,字元"碪"的gbk位元組碼是"B4 55",而字元"U"的位元組碼是"55",在explode函數中第一個參數的字元串會轉成相應的位元組,然後和第二個參數凱答的位元組碼比對,進行分割。
在下面例子中就是 55 分割 B4 55 B4 55 55 B4 55 B4 55 ,所以"碪"字被分割了。

這種情況很多,所以在敗孫閉php中使用explode時應多注意!

<?php
$result = explode("U", "碪碪U碪碪");
print_r($result);
?>

我也碰到這問題了,正在研究字母解決察裂

3. PHP 輸出簡單的中文 亂碼問題

解決php中中文亂碼問題方法

  1. php文件本身的編碼與網頁的編碼應匹配


    a. 如果欲使用gb2312編碼,那麼php要輸出頭:header(「Content-Type: text/html; charset=gb2312"),靜態頁面添加<metahttp-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的編碼格式為ANSI,可用記事本打開,另存為選擇編碼為ANSI,覆蓋源文件。


    b. 如果欲使用utf-8編碼,那麼php要輸出頭:header(「Content-Type: text/html; charset=utf-8"),靜態頁面添加<metahttp-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的編碼格式為utf-8。保存為utf-8可能會有點麻煩,一般utf-8文件開頭會有BOM,如果使用session就會出問題,可用editplus來保存,在editplus中,工具->參數選擇->文件->UTF-8簽名,選擇總是刪除,再保存就可以去掉BOM信息了。

  2. php本身不是Unicode的,所有substr之類的函數得改成mb_substr(需要裝mbstring擴展);或者用iconv轉碼。

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

(3)php截取字元亂碼擴展閱讀:

解決PHP 輸出簡單的中文 亂碼問題的其他方法:

在php的echo前面加入header("Content-Type:text/html;charset=gb2312")

把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />中的UTF-8改成gb2312

4. 請問下php怎麼處理截取字元串出現的亂碼問題

利用php內置方法mb_substr截取不亂碼;
1、GBK編碼截取示例:
$str = '我是誰'; //gbk編碼的字元串
echo mb_substr($str, 0, 1, 'gbk'); //輸出 我

mb_substr方法比substr多一個參數,用來指定字元串編碼。

2、utf-8編碼截取示例:
[code]
$str = '我abc是誰'; //utf-8編碼的字元串
echo mb_substr($str, 0, 2, 'utf-8'); //輸出 我a
[/code]
中英混合也完全沒有問題。

熱點內容
偶校驗c語言 發布:2025-02-13 23:22:52 瀏覽:937
芒果如何提取離線緩存視頻 發布:2025-02-13 23:16:12 瀏覽:793
王者榮耀微信區安卓哪裡分低 發布:2025-02-13 23:14:10 瀏覽:658
安裝linuxvmwaretools 發布:2025-02-13 22:56:02 瀏覽:8
浪潮伺服器如何引導系統安裝光碟 發布:2025-02-13 22:56:02 瀏覽:112
java多線程的同步 發布:2025-02-13 22:46:15 瀏覽:920
軟體使用許可權里存儲關閉還是打開 發布:2025-02-13 22:46:11 瀏覽:382
大王卡視頻上傳成功正在審核 發布:2025-02-13 22:45:06 瀏覽:523
和平精英安卓版怎麼調成中文 發布:2025-02-13 22:16:10 瀏覽:37
混沌起源需要什麼配置玩 發布:2025-02-13 22:14:33 瀏覽:278