php 編碼問題

2021-08-26 11:01:28 字數 3566 閱讀 1865

字串編碼

2011-11-17 18:08

1.檢視頁面輸入,內部,輸出編碼:

print_r(iconv_get_encoding("all"));

2.對指字串進行編碼轉換:

echoiconv('utf-8','gb2312','我們');        //把『我們』由utf8編碼轉換為gb2312編碼

**iconv(in_charset,outcharset//translit //ignore,$string);//'translit':如果在輸出的編碼格式中不含有的字元,可以在類似編碼中查詢取代;'ignore':如 果輸出格式編碼中不含有字串中的某字元時,能夠跳過進行後面字元的編碼。否則在轉碼失敗處會中斷輸出,產生錯誤。

3.將字串進行編碼轉換(

可自動判斷編碼型別,但聽說效率沒有iconv好。)

mb_convert_encoding(

『我們』

, 'utf-8','gb2312' );  //將『我們』由gb2312轉換為utf8

mb_convert_encoding(

『我們』

, 'utf-8');       //將『我們』轉換成utf8編碼格式

/*"auto"i***pandedto"ascii,jis,utf-8,euc-jp,sjis"*/

$str

=mb_convert_encoding(

$str

,"euc-jp"

,"auto"

);/*autodetectencodingfromjis,eucjp-win,sjis-win,thenconvertstrtoucs-2le*/

$str

=mb_convert_encoding(

$str

,"ucs-2le"

,"jis,eucjp-win,sjis-win"

);**第三個引數還可以是array()形式

4.設定編碼格式:

iconv_set_encoding(

"internal_encoding"

,"utf-8"

); //設定內部編碼為utf8

iconv_set_encoding(

"output_encoding"

,"iso-8859-1"

);//設定輸出編碼為iso-8859-1

設定選項:1.input_encoding 2.output_encoding 3.internal_encoding

**iso-8859-1編碼是單位元組編碼,向下相容ascii, latin1是iso-8859-1的別名

5.檢視字串編碼方式:

格式:string

mb_detect_encoding

(string

$str

[,mixed

$encoding_list

= mb_detect_order()

[,bool

$strict

= false

]] )

$str='編碼方式';

echomb_detect_encoding($str);  //:

utf-8

/*"auto"i***pandedto"ascii,jis,utf-8,euc-jp,sjis"*/

echomb_detect_encoding(

$str

,"auto"

);/*specifyencoding_listcharacterencodingbycommaseparatedlist*/

echomb_detect_encoding(

$str

,"jis,eucjp-win,sjis-win"

);/*usearraytospecifyencoding_list*/

$ary

="ascii"

;$ary

="jis"

;$ary

="euc-jp"

;echomb_detect_encoding

(

$str

,$ary);

6.檢視檔案編碼方式:

$file = 'text3.txt';

echogetfileencoding(file_get_contents($file)); // 輸出utf-16le

7.判斷字串是否符合指定格式編碼:

格式:boolmb_check_encoding([

string

$var

=null[,

string

$encoding

= mb_internal_encoding()

]] )

$string

="\x00\x81"

;$encoding

="shift_jis"

;mb_check_encoding(

$string

,$encoding

)   //:true

8.單個或多個變數的字元編碼

轉換:

格式:stringmb_convert_variables(

string

$to_encoding

,mixed

$from_encoding

,mixed

&$vars

[,mixed

&$...

] )

**$from_encoding:可以是數字形式,用逗號分隔字串或結構體形式。

$str1= '測試編碼';$str21= '測試編碼2';

$inputenc =mb_convert_variables("utf-8", "utf-8,gbk,gb2312", $str1, $str2);

var_dump($inputenc);    //: string(5) "utf-8"

var_dump($str1); 

//: string(12) "測試編碼"

**cp936是gbk

php 編碼問題

字串編碼 2011 11 17 18 08 1.檢視頁面輸入,內部,輸出編碼 print r iconv get encoding all 2.對指字串進行編碼轉換 echoiconv utf 8 gb2312 我們 把 我們 由utf8編碼轉換為gb2312編碼 iconv in charset,...

php編碼轉換及問題

首先,編碼,在大陸,最常見的也就兩種,一種是utf 8,一種是gbk gb2312。gb2312是簡體中文編碼。gbk gb2312是中文編碼,二者是相對相容的。資料庫儲存資料,一般採用utf8編碼方式。而常常我們windows系統預設的編碼方式是gb2312,這就出現了編碼不統一的問題。情景 寫入...

實用 PHP頁面編碼問題

頁面編碼統一 mysql資料庫編碼 html頁面編碼 php或html檔案本身編碼要全部一致。1 mysql資料庫編碼 建立資料庫時指定編碼 如gbk chinese ci 建立資料表 建立字段 插入資料時不要指定編碼,會自動繼承資料庫的編碼。資料庫連線時,也有編碼,可以在連線完資料庫後,執行 my...