ホームページ >バックエンド開発 >PHPチュートリアル >PHP ord関数と中国語文字化けの解決策_PHPチュートリアル
PHP ord() 関数 PHP 文字列関数の定義と使用法 ord() 関数は、文字列の最初の文字の ASCII 値を返します。構文 ord(string) パラメータ 説明 string 必須。 ASCII 値を取得する文字列。
phpチュートリアル ord() 関数
PHPの文字列関数
定義と使用法
ord() 関数は、文字列の最初の文字の ASCII 値を返します。
文法
ord(string) パラメータの説明
文字列が必要です。 ASCII 値を取得する文字列。
エコー ord('I');
ここでは 230 しか返されません。u8 でファイルを保存して出力すると、230 が 16 進数に変換され、実際には e68891 になります。最初のバイトだけを取得しました
エコー chr(0xe6).chr(0x88).chr(0x91);
この例では、u8 の条件で漢字「I」を出力できます。ご覧のとおり、この漢字を取得するのに 3 回の chr がかかりました
//キャラクター
$str=(pack("a*", "中国"));
echo $str,"=",strlen($str),"byte n";
getascill($str);
//h 文字
$str=(pack("h*", "fffe"));
echo $str,"=",strlen($str),"byte n";
getascill($str);
//c 文字
$str=(pack("c*", "55","56","57"));
echo $str,"=",strlen($str),"byte n";
getascill($str);//i 文字 short integer 32 ビット 4 バイト 64 ビット 8 バイト
$str=(pack("i", "100"));
echo $str,"=",strlen($str),"byte n";
getascill($str);//s 文字 short integer 2 バイト
$str=(pack("s", "100"));
echo $str,"=",strlen($str),"byte n";
getascill($str);//l 文字長整数 4 バイト
$str=(pack("l", "100"));
echo $str,"=",strlen($str),"byte n";
getascill($str);//f文字単精度浮動小数点4バイト
$str=(pack("f", "100"));
echo $str,"=",strlen($str),"byte n";
getascill($str);//d文字倍精度浮動小数点8バイト
$str=(pack("d", "100"));
echo $str,"=",strlen($str),"byte n";
getascill($str);関数getascill($str)
{
$arr=str_split($str);
foreach ($arr as $v)
{
echo $v,"=",ord($v),"n";
}
エコー「=============rnrn」;
}