php中国語文字符号化の長さ、および現在(内部)符号化を得る関数の設定

1141 ワード

1.gbkは中国語ごとに1.5文字を占め、単一の字がある場合、単独で2文字の位置を占める
echo mb_strlen("  ", 'gbk');//  3
echo mb_strlen("    ", 'gbk');//  6
echo mb_strlen("   ", 'gbk');//  4
echo mb_strlen(" ", 'gbk');//  2

2.gb 2312は中国語ごとに2文字を占め、1文字ある場合は2文字の位置を単独で占める
echo mb_strlen("  ", 'gb2312');//  4
echo mb_strlen("    ", 'gb2312');//  8
echo mb_strlen("   ", 'gb2312');//  6
echo mb_strlen(" ", 'gb2312');//  2

3.utf 8は中国語ごとに2文字、単語がある場合は1文字の位置を1文字ずつ占めます
echo mb_strlen("  ", 'utf8');//  2
echo mb_strlen("    ", 'utf8');//  4
echo mb_strlen("   ", 'utf8');//  3
echo mb_strlen(" ", 'utf8');//  1

4.mb_internal_Encoding、この関数は現在の文字符号化を設定し得る.
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

/* Display current internal character encoding */
echo mb_internal_encoding();//  "UTF-8"