phpチュートリアルの文字列エンコード変換のいくつかの一般的な方法
mb_convert_encoding()
PHPの内部コード変換関数
バージョン (PHP 4 >= 4.0.6、PHP 5)
この関数はさまざまなエンコーディングを相互に変換できます
GBK を UTF-8 に作成する
< ?php
header("content-Type: text/html; charset=Utf-8");
echo mb_convert_encoding("あなたは私の友達です", "UTF-8", "GBK");
?>
Big5 への別の GB2312
header("content-Type: text/html; charset=big5");
echo mb_convert_encoding("あなたは私の友達です", "big5", "GB2312");
?>
iconv()
PHPの内部コード変換関数、同上
PHP codeiconv( "UTF-8", "gb2312//IGNORE" , $str)
ignore は、変換中にエラーを無視することを意味します。
パラメータを無視すると、この文字に続くすべての文字列は保存できません。
さらに、mb_convert_encoding にはこのバグがないため、次のように記述するのが最善です:PHP codemb_convert_encoding($str,"gb2312", "UTF-8");
ただし、最初に mbstring 拡張ライブラリを有効にする必要があります。
mysql チュートリアル データベース チュートリアルの照合順序を utf-8 に設定することもでき、変換には使用されません
3 つの mysql マントラ
名前を設定 utf8;
文字を設定 utf8;
SET COLLATION_CONNECTION='utf8_general_ci';
カスタム機能1
-------------------------------------------------- ----------------------------------
---
GB2312を変換する関数をネットで見つけてutf-8に修正したら変換エラーが出て中国語が解析できなくなりました…楽しみです
。
PHP コード 関数エスケープ($str) {
Preg_match_all("/[x80-xff].|[x01-x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
If(ord($v[0])
$ar[$k] = rawurlencode($v);
その他
$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
return join("",$ar);
}
関数 unescape($str) {
$str = rawurldecode($str);
Preg_match_all("/(?:%u.{4})|.+/",$str,$r);
$ar = $r[0];
If(substr($v,0,2) == "%u" && strlen($v) == 6)
$ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
}
return join("",$ar);
}
?>
カスタム機能2
-------------------------------------------------- ----------------------------------
フォーラム gingzai777 のおかげで、専門家は違います。彼らは一目で問題を理解できます...
将来的には、これを PHP フィルタリングに使用できるようになり、ファイルのエンコードについて心配する必要がなくなります...
PHP コード
関数 addlashes_str($str){
$str=addslashes($str);
$str=str_replace($str,";",';');
$str;
を返します
}
関数ストリップのチュートリアル lashes_str($str){
$str=ストリップスラッシュ($str);
$str=str_replace($str,';',";");
$str;
を返します
}
?>