PHP を使用して Unicode と utf8 を変換する方法: まず、[4-6] バイトのエンコードを考慮する必要はありません。その後、4 バイトを超える [utf-8] 文字が表示されます。直接文字化けとみなされますが、無視するか、Unicode エンティティ形式に変換すると、コードは [$utf8char = "{$c};"] になります。
php を使用して Unicode と utf8 を変換する方法:
Unicode エンコードでは、utf-8 と gb を実装します。シリーズ エンコード (gb2312、gbk、gb18030) 変換の基礎. utf-8 からこれらのエンコードへの比較表を直接作成することもできますが、utf-8 の可変エンコードが不確実であるため、これを行う人はほとんどいません。一般に、Unicode と gb エンコーディング間の比較表が使用されます。Unicode (UCS-2) は実際には utf-8 の基本エンコーディングであり、utf-8 はその実装にすぎません。この 2 つは次の対応関係があります:
#Unicode 記号の範囲 | UTF-8 エンコード方式
/* * 参数 $c 是unicode字符编码的int类型数值,如果是用二进制读取的数据,在php中通常要用 hexdec(bin2hex( $bin_unichar )) 这样转换 */ function uni2utf8( $c ) { if ($c < 0x80) { $utf8char = chr($c); } else if ($c < 0x800) { $utf8char = chr(0xC0 | $c >> 0x06).chr(0x80 | $c & 0x3F); } else if ($c < 0x10000) { $utf8char = chr(0xE0 | $c >> 0x0C).chr(0x80 | $c >> 0x06 & 0x3F).chr(0x80 | $c & 0x3F); } //因为UCS-2只有两字节,所以后面的情况是不可能出现的,这里只是说明unicode HTML实体编码的用法。 else { $utf8char = "&#{$c};"; } return $utf8char; }現在の環境では、utf-8 文字セット == unicode (UCS-2) と考えられますが、理論上、主要な文字セット関係の包含関係は次のとおりです。
utf-8 > unicode(UCS-2) > gb18030 > gbk > gb2312したがって、エンコードがすべて正しい場合:
gb2312 => gbk => gb18030 => unicode(UCS-2) => utf-8このような変換プロセスは基本的にロスレスですが、逆に
utf-8 => unicode(UCS-2) => gb18030=> gbk => gb2312このような変換処理では、認識できない文字が含まれる可能性が非常に高いため、システムが UTF-8 エンコードを使用している場合は、安易にエンコード操作を逆にしないようにしてください。
関連する学習の推奨事項:
PHP プログラミングの入門から熟練度まで以上がPHPを使用してUnicodeとutf8を変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。