2011-02-10 13 views

答えて

2

127(バイナリ011111117f進)以上の値を持つ各バイトだマルチバイト文字の一部だと思います。

したがって、最初のビットが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(有効/無効バイトの組み合わせについての技術的な詳細を持っている)

0

UTF-8 ユニコードであり、翻訳はありません。 「Unicode文字列を表示しているときに非ASCII文字を画面に表示するにはどうすればいいですか?」というメッセージが表示される場合は、Unicode対応フォントがインストールされていることを確認してください。&

私の会社はthisフォントを使用しています。

+0

私は申し訳ありませんが、それは正しくありません。 UTF-8は、* Unicode文字をエンコードする(同様に、ASCII *はラテンアルファベットをエンコードしますが、*はアルファベットではありません)文字をバイトに変換するシステムです。プログラマーのメタファーでは、「UTF-8はUnicodeインターフェースを実装しています」と言うことができます。 UTF-8は最もよく知られていますが、UTF-7、UTF-16、UTF-32の中には他にもあります。私はUnicodeに関するWikipediaのページとその答えのリンクをお勧めします。 http://en.wikipedia.org/wiki/Unicode – Piskvor

+0

ユニコードは_UTF-8_と呼ばれる可変長バイトエンコーディングからユニコード文字を構成する_コードポイントです。 – user4344

+0

@ user4344:UTF-8をすべてエンコードするエンコーディングがあれば、これは完全すぎる過度の単純化です。 Unicode * codepoint *は基本的に文字を表す数値です。この数字は、UTF-7、UTF-8など様々なエンコーディング**でエンコードすることができます。これを読んでください。* "is"と "*"は "* ://www.joelonsoftware.com/articles/Unicode.html – Piskvor

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 
+0

バイト位置はプロセッサのエンディアンに依存しますか? – user4344

+0

@ user4344 - いいえ - ソース:http://unicode.org/faq/utf_bom.html#utf8-2 – McDowell

関連する問題