知識ベース

スペシャル(Unicodeブロック)

FFFEとFFFFは通常の意味で割り当てられていませんが、Unicode文字ではないことが保証されています。これらを含むテキストは定義上、正しくエンコードされたUnicodeテキストではないため、テキストのエンコードスキームを推測するために使用できます。 UnicodeのU + FEFF BYTE ORDER MARK文字をUnicodeテキストの先頭に挿入して、エンディアンを通知できます。このようなテキストを読み取り、0xFFFEに遭遇したプログラムは、次のすべての文字のバイト順を切り替える必要があることを認識します。

置換文字

置換文字 �(多くの場合、白い疑問符の付いた黒いひし形または空の四角いボックス)は、Unicode標準のSpecialsテーブルのコードポイントU + FFFDにある記号です。システムがデータのストリームを正しいシンボルにレンダリングできない場合の問題を示すために使用されます。通常、データが無効で、どの文字とも一致しない場合に見られます。

ISO-8859-1エンコード(0x66 0xFC 0x72)でドイツ語の「für」を含むテキストファイルを考えてみましょう。このファイルは、入力がUTF-8であると想定するテキストエディターで開かれます。最初と最後のバイトはASCIIの有効なUTF-8エンコーディングですが、中間バイト(0xFC)はUTF-8の有効なバイトではありません。したがって、テキストエディターは、このバイトを置換文字記号に置き換えて、Unicodeコードポイントの有効な文字列を生成できます。文字列全体が「f�r」のように表示されます。

実装が不十分なテキストエディタでは、置換をUTF-8形式で保存できます。テキストファイルのデータは次のようになります。0x660xEF 0xBF 0xBD0x72。ISO-8859-1では「f�r」として表示されます(moj​​ibakeを参照)。置換はすべてのエラーで同じであるため、元のキャラクターを回復することはできません。より良い(しかし実装が難しい)設計は、エラーを含む元のバイトを保存し、テキストを表示するときにのみ置換に変換することです。これにより、テキストエディターは元のバイトシーケンスを保存しながら、エラーインジケーターをユーザーに表示できます。

ソフトウェアが、バイトがISO-8859-1などの別のバイトベースのエンコーディングにあると推測して、無効なUTF-8を解釈することがますます一般的になっています。これにより、貼り付けられた有効なUTF-8と無効なUTF-8の両方を正しく表示できます。 WebページがISO-8859-1(またはWindows-1252)を使用しているが、エンコードをUTF-8として指定している場合、ほとんどのWebブラウザーはすべての非ASCII文字を�として表示するために使用されますが、新しいブラウザーは誤ったバイトを個別に文字に変換しますWindows-1252。したがって、置換文字はあまり頻繁に見られません。

Unicodeチャート

特別
公式Unicodeコンソーシアムコードチャート(PDF)
0 1 2 3 4 5 6 7 8 9 A B C D E F
U + FFFx IA
A
IA
S
IA
T
1. ^ Unicodeバージョン12.0以降2. ^灰色の領域は割り当てられていないコードポイントを示します。 ^黒の領域は非文字(Unicode標準でエンコード文字として割り当てられないことが保証されているコードポイント)を示します

歴史

次のUnicode関連ドキュメントには、Specialsブロックで特定の文字を定義する目的とプロセスが記録されています。

最終的なコードポイントカウント UTC ID L2 ID WG2 ID 資料
1.0.0 U + FFFD 1 (決断される)
U + FFFE..FFFF 2 (決断される)
L2 / 01-295R ムーア、リサ(2001-11-06)、「モーション88-M2」、 UTC / L2会議の議事録#88
L2 / 01-355 N2369(html、doc) Davis、Mark(2001-09-26)、 ISO / IEC 10646のテキストでUTF-8のFFFF、FFFEを許可するリクエスト
L2 / 02-154 N2403 ウママヘシュワラン、VS(2002-04-22)、「9.3 UTF-8でのFFFFおよびFFFEの許可」、 WG 2会議のドラフト議事録41、Hotel Phoenix、シンガポール、2001-10-15 / 19
2.1 U + FFFC 1 UTC / 1995-056 Sargent、Murray(1995-12-06)、 WCH_EMBEDDING文字をエンコードするための推奨事項
UTC / 1996-002 Aliprand、Joan;ハート、エドウィン。グリーンフィールド、スティーブ(1996-03-05)、「埋め込みオブジェクト」、 UTC#67分
N1365 Sargent、Murray(1996-03-18)、 提案の要約-オブジェクト置換文字
N1353 ウママヘシュワラン、VS; Ksar、マイク(1996-06-25)、「8.14」、 WG2コペンハーゲン会議#30のドラフト議事録
L2 / 97-288 N1603 ウママヘシュワラン、VS(1997-10-24)、「7.3」、 未確認会議議事録、WG 2会議#33、イラクリオン、クレタ島、ギリシャ、1997年6月20日-7月4日
L2 / 98-004R N1681 ISO 10646-PDAM登録およびFPDAM投票用AMD 18のテキスト 、1997-12-22
L2 / 98-070 Aliprand、Joan; Winkler、アーノルド、「2.1に関する追加コメント」 、1998年2月25〜27日、クパチーノでの会議からのUTCとL2の合同会議の議事録
L2 / 98-318 N1894 10646-1 / FPDAM 18、改訂18:記号とその他 、1998-10-22の改訂テキスト
3.0 U + FFF9..FFFB 3 L2 / 97-255R Aliprand、Joan(1997-12-03)、「3.D Proposal for In-Line Notation(ruby)」、 承認議事録 -UTC #73&L2#170合同会議、カリフォルニア州パロアルト-1997年8月4-5日
L2 / 98-055 Freytag、Asmus(1998-02-22)、 インラインおよびインターリニア注釈の実装のサポート
L2 / 98-070 Aliprand、Joan;ウィンクラー、アーノルド、「3.C.5。インラインおよびインターリニアアノテーションの実装のサポート」 、1998年2月25〜27日、クパチーノでの会議からの共同UTCおよびL2会議の議事録
L2 / 98-099 N1727 Freytag、Asmus(1998-03-18)、 東アジアのタイポグラフィで使用されるインターリニア注釈の実装のサポート
L2 / 98-158 Aliprand、Joan; Winkler、Arnold(1998-05-26)、「Inline and Interlinear Annotations」、 Draft Minutes-UTC#76&NCITS Subgroup L2#173合同会議、ペンシルベニア州トレディフリン、1998年4月20-22日
L2 / 98-286 N1703 ウママヘシュワラン、VS; Ksar、マイク(1998-07-02)、「8.14」、 未確認会議議事録、WG 2会議#34、レドモンド、ワシントン州、米国; 1998-03-16--20
L2 / 98-270 日浦秀樹;小林達夫(1998-07-29)、 インラインおよびインターリニア注釈提案への提案
L2 / 98-281R(pdf、html) Aliprand、Joan(1998-07-31)、「In-Line and Interlinear Annotation(III.C.1.c)」、 未確認議事録-UTC#77&NCITSサブグループL2#174 JOINT MEETING、レドモンド、7月1998年29-31
L2 / 98-363 N1861 佐藤、TK(1998-09-01)、 ルビーマーカー
L2 / 98-372 N1884R2(pdf、doc) ウィスラー、ケン。等。 (1998-09-22)、 UCSの追加文字
L2 / 98-416 N1882.zip 線形間注釈の実装のサポート 、1998-09-23
L2 / 98-329 N1920 ISO / IEC 10646-1 / AmdのWDでのPDAM登録と検討投票の組み合わせ。 30、修正30:追加のラテン文字およびその他の文字 、1998-10-28
L2 / 98-421R Suignard、ミシェル。日浦秀樹(1998-12-04)、 PDAM 30インターリニアアノテーション文字に関する注意
L2 / 99-010 N1903(pdf、html、doc) Umamaheswaran、VS(1998-12-30)、「8.2.15」、 WG 2会議議事録35、ロンドン、英国; 1998-09-21--25
L2 / 98-419(pdf、doc) Aliprand、Joan(1999-02-05)、「Interlinear Annotation Characters」、 承認議事録-UTC#78&NCITSサブグループL2#175合同会議、カリフォルニア州サンノゼ-1998年12月1〜4日
UTC / 1999-021 Duerst、マーティン。 Bosak、Jon(1999-06-08)、 注釈文字に関するW3C XML CGステートメント
L2 / 99-176R ムーア、リサ(1999-11-04)、「注釈文字に関するW3Cリエゾンステートメント」 、1999年6月8〜10日、シアトルでのUTC / L2合同会議の議事録
L2 / 01-301 ウィスラー、ケン(2001-08-01)、「E。プレーンテキストインターチェンジの「強く非推奨」として示されている」 、Unicode標準の文字非推奨の分析
  1. ^提案されたコードポイントとキャラクター名は、最終的なコードポイントと名前と異なる場合があります