Unicode

読み:ユニコード
外語:Unicode 英語 , Unikodo エスペラント
品詞:固有名詞

ASCIIなどの英数文字や日本語を始め、支那語、朝鮮語などの漢字文字、梵字やキリル文字等も含め、全ての国語文字のコード化を目標とする文字コード仕様のこと。

目次

策定

Unicodeは米国の「Unicodeコンソーシアム」という団体により策定されている。

このUnicodeコンソーシアムとISOは直接無関係だが、しかしISOと連携を取り合って規格が作られている。こうして作られたISO/IEC 10646が公的規格となっている。

Unicodeコンソーシアムは、Unicodeについて、次を標榜している。

  • Unicodeは、全ての文字に固有の番号を付ける (Unicode provides a unique number for every character)
  • プラットフォームに依存しない (no matter what the platform)
  • プログラムにも依存しない (no matter what the program)
  • 言語にも依存しない (no matter what the language)

Edition

延々と更新が続くが、版(Edition)と称されるものは次の通りである。

  • 1st edition ‐ ISO/IEC 10646-1:1993
  • 2nd edition ‐ ISO/IEC 10646-1:2000、ISO/IEC 10646-2:2001

規格融合後は、版が1に戻った。

沿革

バージョンごとの差異については後述する。

文字集合

現在

Unicodeは、ISO/IEC 10646の部分集合として文字集合が規定される。

32ビットあるISO/IEC 10646の文字番号の上位から8ビットごとに、群、面、区、点、と呼ばれる。

つまり文字コードの0x10000ごとの区切りとして面(プレイン=Plane)があり、現在は各面について次のように使われている。

  • 00群00面(U+00000〜U+0FFFF) ‐ 基本多言語面(BMP: Basic Multilingual Plane)
  • 00群01面(U+10000〜U+1FFFF) ‐ 補助多言語面(SMP: Supplementary Multilingual Plane)
  • 00群02面(U+20000〜U+2FFFF) ‐ 補助漢字面(SIP: Supplementary Ideograph Plane)
  • 00群03面(U+30000〜U+3FFFF) ‐ TIP: Tertiary Ideographic Plane(直訳で第三漢字面)
  • 00群04面(U+40000〜U+4FFFF) ‐ 未定義
  • 00群05面(U+50000〜U+5FFFF) ‐ 未定義
  • 00群06面(U+60000〜U+6FFFF) ‐ 未定義
  • 00群07面(U+70000〜U+7FFFF) ‐ 未定義
  • 00群08面(U+80000〜U+8FFFF) ‐ 未定義
  • 00群09面(U+90000〜U+9FFFF) ‐ 未定義
  • 00群10面(U+A0000〜U+AFFFF) ‐ 未定義
  • 00群11面(U+B0000〜U+BFFFF) ‐ 未定義
  • 00群12面(U+C0000〜U+CFFFF) ‐ 未定義
  • 00群13面(U+D0000〜U+DFFFF) ‐ 未定義
  • 00群14面(U+E0000〜U+EFFFF) ‐ 補助特殊用途面(SSP: Supplementary Special-purpose Plane)
  • 00群15面(U+F0000〜U+FFFFF) ‐ 外字領域
  • 00群16面(U+100000〜U+10FFFF) ‐ 外字領域

Unicodeでは、16進数で書かれる文字番号は、頭に「U+」をつけるルールとなっている。

従来の電子計算機で使われていた符号に含まれる文字は、BMPを中心として広く対応され、またラウンドトリップ(往復変換)にも配慮している。日本の場合、JIS X 0208とJIS X 0212の全文字はBMPにあり、JIS X 0213の拡張漢字はBMPとSIPにある。

また、当初はBMPのみが想定されていたため、00群01面以上の領域は特殊な方法で用いられることから「サロゲート領域」と呼ばれている。

当初

Unicodeは16ビット固定長を前提として誕生し発展したため、大きくBMPとそれ以外に分けられている。

BMPは当初、次の4領域に分けられていた。

  • U+0000〜U+4DFF ‐ A(Alphabet)領域
  • U+4E00〜U+9FFF ‐ I(Ideograph)領域
  • U+A000〜U+DFFF ‐ O(Open)領域
  • U+E000〜U+FFFD ‐ R(Restricted)領域

この枠組みについては後の拡張によって崩壊しており、現在においては名残りとして残るのみである。

符号化方法

Unicodeには、次のような符号化方法があり、用いられていたり、提案だけされて承認されなかったり、当初仕様書にあったが現在では破棄されたりしている。

Unicode 7.0.0までで、利用可能(および可能予定)な文字の種類は次のとおりである。

文字番号の割り当てについては、各面の項目を参照のこと。

各文字に対応するISO 639の言語コードも併記する(文字のコードではない)。

00面 BMP U+xxxx

基本多言語面(BMP=Basic Multilingual Plane)。

Unicode 7.0.0までで、利用可能な文字の種類は次のとおりである(文字番号順)。

  • Basic Latin (基本ラテン文字、ASCII)
  • Latin-1 Supplement (西欧のラテン文字、ISO/IEC 8859-1)
  • Latin Extended (東欧、北欧などのラテン文字)
  • Greek and Coptic (現代ギリシャ文字[gre、ell、el]、コプト文字[cop])
  • Cyrillic (キリル文字、ロシア語[rus、ru]など)
  • Armenian (アルメニア文字[arm、hye、hy])
  • Hebrew (ヘブライ文字[heb、he])
  • Arabic (アラビア文字[ara、ar])
  • Syriac (シリア文字[syr]) (3.0〜)
  • Thaana (ターナ文字) (3.0〜)
  • NKo (マネンカ文字(ンコ文字)、マンディンゴ語[man]) (5.0.0〜)
  • Samaritan (サマリア文字[sam]) (5.2.0〜)
  • Mandic (マンダ語[mid、myz]) (6.0.0〜)
  • Devanagari (デヴァナガリ文字、サンスクリット語[san、sa])
  • Bengali (ベンガル文字[ben、bn])
  • Gurmukhi (グルムキー文字、パンジャーブ語[pan、pa])
  • Gujarati (グジャラーティー文字、グジャラート語[guj、gu])
  • Oriya (オリヤー文字[ori、or])
  • Tamil (タミル文字[tam、ta])
  • Telugu (テルグ文字[tel、te])
  • Kannada (カンナダ文字[kan、kn])
  • Malayalam (マラヤーラム文字[mal、ml])
  • Sinhala (シンハラ文字[sin、si]) (3.0〜)
  • Thai (タイ文字[tha、th])
  • Lao (ラオ文字[lao、lo])
  • Tibetan (チベット文字[tib、bod、bo])
  • Myanmar (ビルマ文字[bur、mya、my]) (3.0〜)
  • Georgian (グルジア文字[geo、kat、ka])
  • Hangul (ハングル朝鮮語[kor、ko])
  • Ethiopic (エチオピア文字、アムハラ語[amh、am]) (3.0〜)
  • Cherokee (チェロキー文字[chr]) (3.0〜)
  • Unified Canadian Aboriginal Syllabics (カナダ原住民音節文字) (3.0〜)
  • Ogham (オガム文字(古代ケルト文字)) (3.0〜)
  • Runic (ルーン文字(古代ゲルマン文字)) (3.0〜)
  • Tagalog (タガログ文字バイバイン[tgl、tl]) (3.2〜)
  • Hanunoo (ハヌノオ文字(フィリピンの民族語)) (3.2〜)
  • Buhid (ブヒッド文字(フィリピンの民族語)) (3.2〜)
  • Tagbanwa (タグバンワ文字(フィリピンの民族語)) (3.2〜)
  • Khmer (クメール文字[khm、km]) (3.0〜)
  • Mongolian (モンゴル文字[mon、mn]) (3.0〜)
  • Limbu (リンブ文字) (4.0.0〜)
  • Tai Le (タイ・レ文字) (4.0.0〜)
  • New Tai Lue (新タイ・ルー文字) (4.1.0〜)
  • Buginese (ブギ文字[bug]) (4.1.0〜)
  • Tai Tham (タイ・タム文字) (5.2.0〜)
  • Balinese (バリ文字[ban]) (5.0.0〜)
  • Sundanese (スンダ文字[sun、su]) (5.1.0〜)
  • Batak (バタク文字[btk]) (6.0.0〜)
  • Lepcha (レプチャ文字) (5.1.0〜)
  • Ol Chiki (オルチキ文字、サンタル語([sat]) (5.1.0〜)
  • Glagolitic (グラゴール文字(古スラヴ文字)) (4.1.0〜)
  • Coptic (コプト文字[cop]) (4.1.0〜)
  • Tifinagh (ティフナグ文字、タマシェク語/トゥアレグ語) (4.1.0〜)
  • CJK Unified Ideographs (CJK統合漢字)
  • Yi Syllables, Radicals (イ文字 音節、部首) (3.0〜)
  • Lisu (リス文字) (5.2.0〜)
  • Vai (ヴァイ文字 [vai]) (5.1.0〜)
  • Bamum (バムン文字) (5.2.0〜)
  • Syloti Nagri (シロティ・ナグリ文字) (4.1.0〜)
  • Phags-pa (パスパ文字) (5.0.0〜)
  • Saurashtra (サウラーシュトラ文字) (5.1.0〜)
  • Kayah li (カヤー文字) (5.1.0〜)
  • Rejang (ルジャン文字) (5.1.0〜)
  • Javanese (ジャワ文字) (5.2.0〜)
  • Cham (チャム諸語[cmc]) (5.1.0〜)
  • Tai Viet (タイ・ヴェト文字) (5.2.0〜)
  • Meetei Mayek (メイテイ文字) (5.2.0〜)

01面 SMP U+1xxxx

補助多言語面(SMP=Supplementary Multilingual Plane)。

古代文字や記号類など、日常滅多に使わないような文字がここに格納されている。

Unicode 7.0.0までで、利用可能な文字の種類は次のとおりである(文字番号順)。

  • Linear B Syllabary, Ideograms (線文字B 音節、表意文字) (4.0.0〜)
  • Aegean Numbers (エーゲ数字) (4.0.0〜)
  • Ancient Greek Numbers (古代ギリシャ数字) (4.1.0〜)
  • Ancient Symbols (古代記号) (5.1.0〜)
  • Phaistos Disc (ファイストス文字(円盤文字)) (5.1.0〜)
  • Lycian (リキア文字) (5.1.0〜)
  • Carian (カリア文字) (5.1.0〜)
  • Coptic Epact Numbers (7.0.0〜)
  • Old Italic (古代イタリア文字) (3.1〜)
  • Gothic (ゴート文字) (3.1〜)
  • Old Permic (古ペルム文字) (7.0.0〜)
  • Ugaritic (ウガリット楔形文字) (4.0.0〜)
  • Old Persian (古代ペルシャ語[peo]) (4.1.0〜)
  • Deseret (デセレット文字) (3.1〜)
  • Shavian (シェイヴィアン文字) (4.0.0〜)
  • Osmanya (オスマン文字) (4.0.0〜)
  • Elbasan (エルバサン文字) (7.0.0〜)
  • Caucasian Albanian (カフカース・アルバニア文字) (7.0.0〜)
  • Linear A (線文字A) (7.0.0〜)
  • Cypriot Syllabary (キプロス音節文字) (4.0.0〜)
  • Imperial Aramaic (帝国アラム文字) (5.2.0〜)
  • Palmyrene (パルミラ文字) (7.0.0〜)
  • Nabataean (ナバテア文字) (7.0.0〜)
  • Phoenician (フェニキア文字) (5.0.0〜)
  • Lydian (リディア文字) (5.1.0〜)
  • Meroitic Hieroglyphic (メロエ象形文字) (6.1.0〜)
  • Meroitic Cursive (メロエ文字草書体) (6.1.0〜)
  • Kharoshthi (カローシュティー文字) (4.1.0〜)
  • Old South Arabian (古代南アラビア文字) (5.2.0〜)
  • Old North Arabian (古代北アラビア文字) (7.0.0〜)
  • Manichaean (マニ文字) (7.0.0〜)
  • Avestan (アヴェスター文字) (5.2.0〜)
  • Inscriptional Parthian (碑文パルティア文字) (5.2.0〜)
  • Inscriptional Pahlavi (碑文パフラヴィー文字) (5.2.0〜)
  • Psalter Pahlavi (詩篇パフラヴィー文字) (7.0.0〜)
  • Old Turkic (古代テュルク文字) (5.2.0〜)
  • Rumi Numeral Symbols (ルーミー数字) (5.2.0〜)
  • Brahmi (ブラーフミー文字) (5.2.0〜)
  • Kaithi (カイティー文字) (5.2.0〜)
  • Sora Sompeng (ソラング・ソンペング文字) (6.1.0〜)
  • Chakma (チャクマ文字) (6.1.0〜)
  • Mahajani (マハージャニー文字) (7.0.0〜)
  • Sharada (シャーラダー文字) (6.1.0〜)
  • Sinhala Archaic Numbers (古代シンハラ数字) (7.0.0〜)
  • Khojki (ホジャ文字) (7.0.0〜)
  • Khudawadi (フダーワーディー文字) (7.0.0〜)
  • Grantha (グランタ文字) (7.0.0〜)
  • Tirhuta (ティルフータ文字) (7.0.0〜)
  • Siddham (悉曇) (7.0.0〜)
  • Modi (モディ文字) (7.0.0〜)
  • Takri (タークリー文字) (6.1.0〜)
  • Warang Citi (ワラング・クシティ文字) (7.0.0〜)
  • Pau Cin Hau (パウ・チン・ハウ文字) (7.0.0〜)
  • Cuneiform (楔形文字) (5.0.0〜)
  • Egyptian hieroglyph (エジプト・ヒエログリフ) (5.2.0〜)
  • Bamum Supplement (バムン文字補助集合) (6.0〜)
  • Mro (Mro文字) (7.0.0〜)
  • Bassa Vah (バサ文字) (7.0.0〜)
  • Pahawh Hmong (パハウ・フモン文字) (7.0.0〜)
  • Miao (ミャオ文字) (6.1.0〜)
  • Kana Supplement (仮名補助集合) (6.0〜)
  • Duployan (Duployan速記文字) (7.0.0〜)
  • Shorthand Format Controls (速記書式制御) (7.0.0〜)
  • Byzantine Musical Symbols (ビザンティン様式 音楽記号) (3.1〜)
  • Musical Symbols (音楽記号) (3.1〜)
  • Ancient Greek Musical Notation (古代ギリシャ音楽記号) (4.1.0〜)
  • Tai Xuan Jing Symbols (太玄経記号) (4.0.0〜)
  • Counting Rod Numerals (算木数字、支那・日本の計算記号) (5.0.0〜)
  • Mende Kikakui (メンデ文字) (7.0.0〜)
  • Arabic Mathematical (アラビア文字数学記号) (6.1.0〜)
  • Mahjong Tiles (麻雀牌) (5.1.0〜)
  • Domino Tiles (ドミノ牌) (5.1.0〜)
  • Playing Cards (トランプカード) (6.0〜)
  • Enclosed Alphanumeric Supplement (囲み英数字追加集合) (5.2.0〜)
  • Enclosed Ideographic Supplement (囲み漢字文字追加集合) (5.2.0〜)
  • Miscellaneous Pictographic Symbols (絵文字) (6.0〜)
  • Emoticons (顔文字) (6.0〜)
  • Ornamental Dingbats (装飾用絵記号) (7.0.0〜)
  • Transport and Map Symbols (交通および地図記号) (6.0〜)
  • Alchemical Symbols (錬金術記号) (6.0〜)

02面 SIP U+2xxxx

補助漢字面(SIP=Supplementary Ideograph Plane)。

CJK統合漢字拡張BCJK統合漢字拡張CCJK統合漢字拡張DCJK統合漢字拡張Eがここにあり、00面と合わせて康熙字典の全ての字が揃うことになっている。

03面 TIP U+3xxxx

第三漢字面(TIP=Tertiary Ideographic Plane)。

現在は使われていない、古代の漢字がここに符号化される予定。

14面 SSP U+Exxxx

補助特殊用途面(SSP=Supplementary Special-purpose Plane)。

15面、16面 U+Fxxxx、U+10xxxx

外字領域。

  • Supplementary Private Use Area-A (15面)
  • Supplementary Private Use Area-B (16面)

Unicode 1.0〜1.1

Unicode 1.0Unicode 1.1は、ISO/IEC 10646(当時のISO/IEC 10646-1)によって定められる31ビット長文字コード規格のうち、00群00面(上位16ビットがすべて0となる領域)のこと、と説明できる。

これは基本多言語面(BMP)と呼ばれ、最大で65,536文字が表現可能だった。

多国語が必要な環境で歓迎され、HTMLなどの文書やWindows NTなどのOSで採用された。

Unicode 1.1からは「結合文字」が明確に用意され、基底文字+結合文字という後置により、文字が表現可能となった。例えば、「が」は、「か」と結合用濁点の2文字で表現することが出来る。

また、Unicode 1.0にあったチベット文字はUnicode 1.1で一旦全て削除された。

Unicode 2.0〜2.1

16ビットでは領域が不足したことから、Unicode 2.0ではあらかじめ確保されていた空き領域に1,024個のサロゲートを二組用意し、二つ組み合わせて表現する「サロゲートペア」が導入された。この方式を用いた符号化方法を「UTF-16」という。

これにより、扱える文字数が合計で220+216−2048(サロゲート)で、最大1,112,064字となった。この版では枠組みが決まっただけで、その領域に格納する文字までは決められていない。

また、U+3400〜4DFFに置かれていたハングルがU+AC00〜D7FFに移動され増やされた。ハングルは、Unicode 1.1迄とUnicode 2.0以降は非互換となる。

更に、Unicode 1.1で一旦削除されたチベット文字はUnicode 2.0から符号位置や仕様を変え、再び定義された。チベット文字は、Unicode 1.0とUnicode 2.0以降は非互換となる。

Unicode 3.0

Unicode 3.0になり、ようやく不足極まっていた漢字文字が増やされることになった。

Unicode 1.1ではハングルが置かれていたBMP領域(U+3400〜U+4DFF)をCJK統合漢字拡張A(Ext-A)とし、6,582文字の漢字が増やされている。

Unicode 3.1

Unicode 3.1からは、更に漢字を増やすため遂にBMPを超える範囲の文字も規定された。

サロゲート領域(U+20100〜U+2A6D6)に、CJK統合漢字拡張B(Ext-B)として42,711文字が追加されている。

Unicode 3.2.0

Unicode 3.2.0からは、仕様として公式にJIS X 0213への対応が明記された。

異体字セレクター(Variation Selector)1〜16が追加された。

Unicode 4.0.0

Unicode 4.0.0からは、異体字セレクター(Variation Selector)が17〜256まで追加された。

第3面の全域がreserved(予約)として、記述が追加された。

Unicode 4.1.0

Unicode 4.1.0からは、コプト語や古代ペルシャ語など、対応言語の追加。

Unicode 5.0.0

Unicode 5.0.0からは、BMP内にNKo、バリ文字、ラテン文字拡張CおよびDが追加され、サロゲート領域にフェニキア文字、楔形文字、Counting Rod 数字が追加された。

Unicode 5.1.0

Unicode 5.1.0からは、BMP内にスンダ文字、レプチャ文字、オルチキ文字、ヴァイ文字、サウラーシュトラ文字、ルジャン文字、チャム文字と、拡張キリル文字が追加された。

SMP内に古代記号、ファイストス文字(円盤文字)、リキア文字、カリア文字、リディア文字、麻雀牌、ドミノ牌が追加された。

この版から、漢字に対する異体字セレクターが定義され始めた。

Unicode 5.2.0

Unicode 5.2.0からは、BMP内にタイ・タム文字、追加のハングル字母、タイ・ヴェト文字、サマリア文字、追加の統合カナダ原住民音節文字、追加のヴェーダ文字、リス文字、バムン文字、共通インド数字形、追加のデヴァナガリ文字、ジャワ文字、ミャンマー文字 拡張-A、メイテイ文字が追加された。

SMP内にアヴェスター文字、エジプト・ヒエログリフ、帝国アラム文字、古代南アラビア文字、碑文パルティア文字、碑文パフラヴィー文字、古代テュルク文字、ルーミー数字、カイティー文字が追加された。

SIP内にCJK統合漢字拡張Cが追加された。

Unicode 6.0.0

Unicode 6.0.0は、ケータイ絵文字の追加が最大の特徴である。

またCJK統合漢字拡張Dが追加された。

Unicode 6.1.0

Unicode 6.1.0は、補助多言語面に象形文字や幾つかのブラーフミー系文字などを追加した。

Unicode 6.2.0

Unicode 6.2.0は、トルコリラ通貨記号が追加された。

Unicode 6.3.0

Unicode 6.3.0は、記号4種と、アラビア文字1文字が追加された。

Unicode 7.0.0

Unicode 7.0.0は、補助多言語面に多数の古代文字や人造文字など追加したほか、絵文字や記号類も多数追加された。

記号類

元々16ビットで設計されていたため、漢字についてはCJK統合漢字として全体に占める割り合いを減らす努力がされたが、記号類はそれと逆に、細分化されている点が特徴といえる。

例えば、ASCIIではマイナス記号もハイフンも、-という記号一つで共用する。しかしUnicodeでは、マイナスはU+2212「−」、ハイフンはU+2010「‐」として別の番号が与えられている。その他の記号についても同様で、記号類が豊富な点は特筆に値する点である。

他に、ギリシャ文字のミュー「μ」はU+03BCなのに対し、マイクロ「µ」はU+00B5と別の番号が与えられている、などがある。英大文字のケイ「K」と絶対温度のケルビン「K」も別の文字である。

横棒関係

Unicodeの記号類の豊富さを語る上で、例として横棒関係が挙げられることが多い。

Unicodeでは、横棒関係だけでも、軽く次のようなものがある。罫線用の横線は除く。また欧文、日本語以外の言語の特殊な横棒記号も抜けているものがあるかもしれない。

番号名称概要
U+002DHYPHEN-MINUSASCIIのマイナス記号
U+00ADSOFT HYPHEN単語中、折り返す時に表示されるハイフン(折り返さない時は非表示)
U+2010HYPHEN一般的なハイフン
U+2011NON-BREAKING HYPHEN右端でも折り返さないハイフン
U+2012FIGURE DASH数字用のダッシュ
U+2013EN DASHn幅のダッシュ
U+2014EM DASHm幅のダッシュ
U+2015HORIZONTAL BAR横棒
U+2043HYPHEN BULLET中黒のようなハイフン
U+207BSUPERSCRIPT MINUS上付きマイナス
U+208BSUBSCRIPT MINUS下付きマイナス
U+2212MINUS SIGNマイナス
U+301CWAVE DASH波ダッシュ (〜)
U+3030WAVY DASH波線
U+30FCKATAKANA-HIRAGANA PROLONGED SOUND MARK仮名の長音
U+FF0DFULLWIDTH HYPHEN-MINUS「全角」のASCIIマイナス記号
U+FF5EFULLWIDTH TILDE全角チルダ
U+FF70HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK半角の仮名の長音

ちなみに、JIS X 0208の~は、本来はU+301Cに割り当てられるのが正しいと考えられるが、Windows等ではU+FF5Eに割り当てている。

しかし、本来U+FF5Eは「チルダ」であって、波線記号ではない。日本語以外の言語では、U+FF5Eを表示させても一般的な波線にはならない。

従って、「キャ~~!!」といった~の使い方は、これだと間違いになるだろう。

空白関係

空白も非常に多い。これだけ用意して、どう使い分けるのかは定かでない。

番号名称概要
U+0020SPACEASCIIの空白記号
U+00A0NO-BREAK SPACE改行しない空白
U+2000EN QUADn幅の四角形
U+2001EM QUADm幅の四角形
U+2002EN SPACEn幅の空白
U+2003EM SPACEm幅の空白
U+2004THREE-PER-EM SPACE1/3m幅の空白
U+2005FOUR-PER-EM SPACE1/4m幅の空白
U+2006SIX-PER-EM SPACE1/6m幅の空白
U+2007FIGURE SPACE数字用空白
U+2008PUNCTUATION SPACE句読点用空白
U+2009THIN SPACE細い空白
U+200AHAIR SPACE非常に細い空白
U+200BZERO WIDTH SPACE幅の無い空白
U+202FNARROW NO-BREAK SPACE幅の狭い改行しない空白
U+205FMEDIUM MATHEMATICAL SPACE中程度の幅の数学用空白
U+3000IDEOGRAPHIC SPACE全角空白
U+FEFFZERO WIDTH NO-BREAK SPACE幅の無い改行しない空白

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club