ホームページ  >  記事  >  バックエンド開発  >  php での Unicode と utf8 エンコーディングについて簡単に説明します、unicodeutf8_PHP チュートリアル

php での Unicode と utf8 エンコーディングについて簡単に説明します、unicodeutf8_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:51:081061ブラウズ

PHP、unicodeutf8のUnicodeとutf8エンコーディングについて簡単に話します

Unicodeとutf8エンコーディングを再理解してください

今日まで、正確に言うと、たった今、UTF-8エンコーディングとUnicodeエンコーディングが異なる、違いがあることを知りませんでした
それらの間には特定のつながりがあります。違いを見てください:
UTF-8 の長さは定かではなく、1、2、または 3 バイトである可能性があります
Unicode には特定の長さ、2 バイト (USC-2) があります
UTF-8 は Unicode との間で変換できます

Unicodeとutf8の関係

ユニコード(16)

UTF-8(バイナリ)

0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx

上の表には 2 つの意味があります。1 つは明らかに Unicode と UTF-8 の文字範囲の対応関係であり、もう 1 つは Unicode と UTF-8 が相互に変換される方法を示しています。

最初にUTF-8からUnicodeへの変換について話しましょう

UTF-8 でエンコードされたバイナリは、上記の 3 つの形式と照合されます。照合後、固定ビット (テーブル内の x 以外の位置) を削除し、8 ビットが足りない場合は、右から左へ 8 ビットごとにグループ化します。左側は取得されません。これらの 16 ビットは、UTF-8 に対応する Unicode エンコーディングを表します。

上の図のテキストエンコーディング形式はUTF-8であり、WinHexを使用してその16進表現を確認できます


コードをコピーします コードは次のとおりです: 文字 => UTF-8 => UTF-8 バイナリ => 16 ビット バイナリを構成します
汉 => E6B189 => 11100110 10110001 10001001 => 01101100 01001001 => 6C49

ワード => E5AD97 => 11100101 10101101 10010111 => 01011011 01010111 => 5B57


#以下はChromeコマンドラインで実行した結果です

「u6C49」

「ハン」
「u5B57」
「言葉」

#この時点で、UTF-8 から Unicode への変換はすでに非常に簡単な作業になっています。変換の疑似コードを見てください。 1バイト読んで、11100110

3 番目のタイプである 3 バイトに属する UTF-8 文字の形式を決定します

続きを読む 2 バイトで 11100101 10101101 10010111 を取得します
1011011 01010111
の形式に従って固定ビットを削除します。 16 桁が足りません。左側にゼロを追加してください 01011011 01010111 => 5B57



Unicode から UTF-8 への変換をもう一度見てください


コードをコピーします

コードは次のとおりです: 5B57 5B57 が位置する Unicode 範囲 0800 5B57 101101101010111 のバイナリ エンコーディングを取得します
前の手順でバイナリ エンコーディングを使用して、UTF-8 エンコーディングを右から左に 11100101 10101101 10010111 につなぎ合わせます



問題について話してください

今日の問題の原因について話しましょう。UTF-8 形式では多くの単語が入力されるため、フロントエンドとバックエンドでそれぞれ検証が行われます。 Unicode エンコードとバックエンド プログラムは UTF-8 エンコードを使用します。現在の解決策はこれです

フロントエンド

リーリー

舞台裏

リーリー

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

http://www.bkjia.com/PHPjc/1014437.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1014437.html技術記事 php の Unicode と utf8 エンコーディングについて簡単に説明します。 unicodeutf8 Unicode と utf8 エンコーディングを再認識します。 今日まで、正確に言うと、UTF-8 エンコーディングと Unicode エンコーディングが異なることを知りませんでした...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。