字串編碼
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...