可変長のUTF-8でエンコードされたバイトはどのようにデコードされ、ユニコード文字に変換されますか?ユニコード変換に関する質問
1
A
答えて
2
127
(バイナリ01111111
、7f
進)以上の値を持つ各バイトだマルチバイト文字の一部だと思います。
したがって、最初のビットが0の場合、1バイト文字が完了します。 これは、継続バイトです。バイト内のビットによって、この文字にいくつのバイトが含まれるかが決定されます(技術的には最大6バイト文字も可能ですが、UTF-8は1-4バイト文字)。歴史とより詳細な説明については
、私たちの大胆不敵なリーダーが、この記事を参照してください;)The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)、またはthis wikipedia article on UTF-8(有効/無効バイトの組み合わせについての技術的な詳細を持っている)
1
は、私はそれがhere
0
UTF-8 はユニコードであり、翻訳はありません。 「Unicode文字列を表示しているときに非ASCII文字を画面に表示するにはどうすればいいですか?」というメッセージが表示される場合は、Unicode対応フォントがインストールされていることを確認してください。&
私の会社はthisフォントを使用しています。
0
これは、@Piskvor describesです。
UTF-8をエンコード/デコードするアルゴリズムは、RFC 3629に記載されています。
(32ビット)のUnicodeコードポイントの次の表は、配列がバイトする範囲は、その文書から来ている:
Char. number range | UTF-8 octet sequence
(hexadecimal) | (binary)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
関連する問題
- 1. jdbcユニコード変換の問題
- 2. ユニコード変換の問題C++
- 3. translate関数とユニコード変換
- 4. をユニコードに変換するかユニコードに変換しない
- 5. シーケンス変換に関する慣用の質問
- 6. 静的変数に関する質問
- 7. JavaScript可変スコープに関する質問
- 8. Djangoユニコード変換
- 9. Android:タイムスタンプ変換の質問!
- 10. 16進数をユニコードに変換するVBScript関数
- 11. ユニコードをASCIIに変換するには?
- 12. エスケープされたユニコード文字をユニコード記法に変換する
- 13. ユニコードをプログラムでエスケープされたユニコードに変換する
- 14. ユニコードをdatetime strptime pythonに変換する
- 15. ユニコードを辞書に変換する
- 16. MySQLでコンポジットバイトをユニコードに変換する
- 17. ユニコードを文字列に変換する
- 18. jsonストリングをユニコードに変換する
- 19. タブバーコントローラに関する質問
- 20. プロセスマップに関する質問
- 21. loadNibNamedに関する質問:
- 22. Erlangに関する質問
- 23. インデックスに関する質問
- 24. BSplineに関する質問
- 25. reallocに関する質問
- 26. インテントサービスに関する質問
- 27. データベースに関する質問
- 28. dbms_stats.gather_table_statsに関する質問
- 29. ハイバネートマッピングに関する質問
- 30. APIに関する質問
私は申し訳ありませんが、それは正しくありません。 UTF-8は、* Unicode文字をエンコードする(同様に、ASCII *はラテンアルファベットをエンコードしますが、*はアルファベットではありません)文字をバイトに変換するシステムです。プログラマーのメタファーでは、「UTF-8はUnicodeインターフェースを実装しています」と言うことができます。 UTF-8は最もよく知られていますが、UTF-7、UTF-16、UTF-32の中には他にもあります。私はUnicodeに関するWikipediaのページとその答えのリンクをお勧めします。 http://en.wikipedia.org/wiki/Unicode – Piskvor
ユニコードは_UTF-8_と呼ばれる可変長バイトエンコーディングからユニコード文字を構成する_コードポイントです。 – user4344
@ user4344:UTF-8をすべてエンコードするエンコーディングがあれば、これは完全すぎる過度の単純化です。 Unicode * codepoint *は基本的に文字を表す数値です。この数字は、UTF-7、UTF-8など様々なエンコーディング**でエンコードすることができます。これを読んでください。* "is"と "*"は "* ://www.joelonsoftware.com/articles/Unicode.html – Piskvor