• 利用案内
  • サービス概要
  • 東京本館
  • 関西館
  • 国際子ども図書館
  • アクセス
  • 複写サービス
  • 登録利用者制度
  • オンラインサービス
  • オンラインサービス一覧
  • 国会関連情報
  • 蔵書検索
  • 電子図書館
  • 調べ方案内
  • 電子展示会

文字コード講座 第3回(完)―文字コードあれこれ

NDL書誌情報ニュースレター

NDL書誌情報ニュースレター2016年2号(通号37号)

【はじめに】

前回は、Unicodeの誕生経緯や文字の表現方法などの概要についてご説明しました。最終回となる今回は、Unicodeで日本の文字を扱う時の留意点や、国立国会図書館が目録作業等に採用してきた文字コードなどについてご紹介します。

【CJK統合漢字について】

ここで、CJK統合漢字の構成などについて簡単にご説明しておきます。

Unicodeは、まとまりのあるブロックごとに文字コードを配置しています。Unicodeのバージョン8.0時点で、CJK統合漢字は次のブロックで構成されています。

  • CJK統合漢字(CJK Unified Ideographs)U+4E00~U+9FFF
    字源的には同じだが字形の異なる中国語、日本語、朝鮮語、ベトナム語の漢字に同じコードを与えて統合した漢字です。
  • CJK統合漢字拡張A~E(CJK Unified Ideographs Extension A-E)A: U+3400~U+4DBF、B: U+20000~U+2A6DF、C: U+2A700~U+2B73F、D: U+2B740~U+2B81F、E: U+2B820~U+2CEAF
    CJK統合漢字と比べて使用頻度の低い漢字で、CJK統合漢字に統合することができないものです。
  • CJK互換漢字およびCJK互換漢字補助(CJK Compatibility Ideographs and Supplement)U+F900~U+FAFF、補助: U+2F800~U+2FA1F
    本来はCJK統合漢字に統合すべき漢字で、同じ字源の漢字がCJK統合漢字に収録されていますが、既存の規格において別の文字コードを与えられていたため、既存の規格とUnicodeの間の双方向のデータ変換(ラウンド・トリップ)が可能になるように、つまり、過去の規格に基づいて作成されたデータをUnicodeに変換し、それを過去の規格に基づいたデータに再変換しても、最初の状態を確保できるように収録された文字です。そのため、ラウンド・トリップの用途以外には使用しないことが推奨されています[1]。次のようなものが含まれます。
    (1) 韓国の規格で異なる発音を持つ同じ漢字に別の符号を与えていたもの(U+F900~U+FA0B)
    (2) 台湾の規格で誤って重複して符号化されていた漢字(U+FA0C~U+FA0D)
    (3) 日本のWindows PCにIBM拡張文字として収録されていた漢字(U+FA0E~U+FA2D)
    (4) 旧バージョンのUnicodeで誤って定義された漢字(U+FA2E~U+FA2F)
    (5) JIS X 0213で包摂基準が変更されたことに伴って追加された漢字(U+FA30~U+FA6A)
    (6) 日本のデータ放送規格の外字(ARIB外字)に基づくもの(U+FA6B~U+FA6D)
    (7) 北朝鮮の規格の一部の漢字(U+FA70~U+FAD9)
    (8) 台湾の規格の一部の漢字および香港増補字符集(HKSCS)の6字(U+2F800~U+2FA1D)
    CJK互換漢字の範囲に収録されている漢字には、ラウンド・トリップ用の互換漢字ではなく、統合漢字として扱うべきものもあるため、注意が必要です。具体的には、U+FA0E(﨎)、U+FA0F(﨏)、U+FA11(﨑)、U+FA13(﨓)、U+FA14(﨔)、U+FA1F(﨟)、U+FA21(﨡)、U+FA23(﨣)、U+FA24(﨤)、U+FA27(﨧)、U+FA28(﨨)、U+FA29(﨩)です。

【注意すべき文字・記号】

Unicodeで日本の文字を扱うときに注意すべき文字について説明します。

(1)改行コード

改行コードは、機種(OS)によって異なります。改行コードは「ここで改行する」ということを宣言するためのコードですので、これが異なっていると改行されずに一行で表示されてしまったり、行間が空いてしまったりすることになります。異なる機種間でテキストファイルを送受信する場合には、漢字コードの変換と同時に改行コードの変換も必要です。おもな改行コードは次のとおりです。

表1 おもなOSの改行コード
OS 改行コード
Microsoft Windows CR+LF
Mac OS(v.9まで) CR
UNIX LF

CR = Carriage Return (ASCIIコードの「0D」)
LF = Line Feed (ASCIIコードの「0A」)

(2)全角・半角(互換文字)

1969年に制定されたJIS X 0201には、制御記号、ASCII、片仮名が収録されました。また、1978年に制定されたJIS X 0208には、平仮名、片仮名、漢字、全角記号などが収録されましたが、JIS X 0201に収録されているASCIIと片仮名もあらためて収録されました。これにより、ASCIIと片仮名は、これらの二つの規格に別の符号位置を持つ文字として収録されることになりました。JIS規格は文字の幅を規定していませんが、これらの規格を参照して作成されたフォントの多くは、JIS X 0201の文字をJIS X 0208の半分の幅で表現したため、一般的に、前者を「半角」、後者を「全角」と区別して呼ぶようになりました。たとえば、JIS X 0201の「ア」を半角片仮名、JIS X 0208の「ア」を全角片仮名と呼びます。

JIS X 0208の1997年の改定時には、各文字がUnicodeの文字に対応付けられました。その際、全角ASCII(JIS X 0208に含まれる全角ASCII)と半角片仮名(JIS X 0201のA1~DF)は、これまでの慣用的な利用との互換を目的としてのみ使用して良いとされました。なお、Unicodeでは、全角ASCIIと半角片仮名は互換文字として登録されています。

たとえば、第2回で示した例と同じですが、Unicodeの規格書のU+FF21の部分は、次のように記述されています。

FF21 A FULLWIDTH LATIN CAPITAL LETTER A
≈ <wide>0041 A

図1 互換等価の例

これは、U+FF21は全角ラテン大文字の「A」であり、U+0041を全角にしたものと互換等価であるという意味に解釈できます。U+FF21は互換文字ですので、ラテン大文字の「A」を入力する際には、全角・半角を問わず、U+0041を用いるべきということになります。

<JIS文字コード規格におけるUnicode>
JIS X 0208とJIS X 0213には、JIS、Shift JISのコード番号などに加え、Unicodeのコード番号も記載されています。

(3)円記号とチルダ

JIS X 0201は、ASCIIの一部の文字を変更可能としているISO/IEC 646に基づいて作られた規格で、ASCIIの0x5Cの「\(バックスラッシュ)」が日本では「¥(円記号)」として、0x7Eの「~(チルダ)」が「‾(オーバーライン)」として表示されます[2](ただし、オーバーラインは、日本語Windows環境ではチルダで表示される可能性があります。)。

Unicodeでは、円記号はU+00A5、バックスラッシュはU+005C、チルダはU+007E、オーバーラインはU+203Eとそれぞれ区別されています。しかし、円記号を入力したつもりが、バックスラッシュとして表示されることなどがあります。これは、フォントやアプリケーションが原因で発生することが多いようです。根本的な解決は困難と言われていますが、HTMLの記述では、言語属性(lang属性)を指定すると正しく表示されることが多いようです[3]

(4)Unicodeに単独の文字が登録されていないJIS X 0213の文字

JIS X 0213に収録されている文字のうち次の25字はUnicodeに単独の文字が登録されておらず、二つのUnicode文字を合成して表わす必要があります(第2回の【Unicodeの文字の合成・分解】の章を参照)。

表2 Unicodeに単独の文字が登録されていないJIS X 0213の文字
JISコード 日本語通用名称(JIS名称) Unicode [4] 表示形
2477 半濁点付き平仮名か U+304B U+309A か゚
2478 半濁点付き平仮名き U+304D U+309A き゚
2479 半濁点付き平仮名く U+304F U+309A く゚
247A 半濁点付き平仮名け U+3051 U+309A け゚
247B 半濁点付き平仮名こ U+3053 U+309A こ゚
2577 半濁点付き片仮名カ U+30AB U+309A カ゚
2578 半濁点付き片仮名キ U+30AD U+309A キ゚
2579 半濁点付き片仮名ク U+30AF U+309A ク゚
257A 半濁点付き片仮名ケ U+30B1 U+309A ケ゚
257B 半濁点付き片仮名コ U+30B3 U+309A コ゚
257C 半濁点付き片仮名セ U+30BB U+309A セ゚
257D 半濁点付き片仮名ツ U+30C4 U+309A ツ゚
257E 半濁点付き片仮名ト U+30C8 U+309A ト゚
2678 小書き半濁点付き片仮名フ U+31F7 U+309A ㇷ゚
2B44 グレーブアクセント付きAE小文字 U+00E6 U+0300 æ̀
2B48 グレーブアクセント付きオープンO小文字 U+0254 U+0300 ɔ̀
2B49 アキュートアクセント付きオープンO小文字 U+0254 U+0301 ɔ́
2B4A グレーブアクセント付きターンドV小文字 U+028C U+0300 ʌ̀
2B4B アキュートアクセント付きターンドV小文字 U+028C U+0301 ʌ́
2B4C グレーブアクセント付きSCHWA小文字 U+0259 U+0300 ə̀
2B4D アキュートアクセント付きSCHWA小文字 U+0259 U+0301 ə́
2B4E グレーブアクセントとフック付きSCHWA小文字 U+025A U+0300 ɚ̀
2B4F アキュートアクセントとフック付きSCHWA小文字 U+025A U+0301 ɚ́
2B65 声調記号上昇調 U+02E9 U+02E5 ˩˥
2B66 声調記号下降調 U+02E5 U+02E9 ˥˩

【国立国会図書館の書誌データ作成について】[5]

国立国会図書館における書誌データ作成時には、1997年12月以前は、漢字処理装置の収容文字数に制限があったため、日本の漢字は旧字体を新字体に置き換えて入力するなどの対応を行っていました[6]。当時、字体が異なる漢字(異体字)を別の文字として入力し、検索時にそれらを同じ文字として扱うためには高いコンピュータ性能が必要でしたが、この対応により、異体字を同じ文字として検索できたという面もあります。

当館では、かつては、独自の漢字コードを使用していましたが、JISの漢字コードが整ったので、1978年にJIS漢字コード(JIS C 6226-1978)に切り替えました。その後、単行資料は2002年4月から、逐次刊行資料は2003年7月から、JIS X 0208-1990を採用しました。2000年には、JIS X 0208に文字を追加したJIS X 0213の初版が制定されていましたが、文字コードの変更は、書誌データの作成作業や検索に大きな影響を与えるため、慎重な対応が必要だったのです。

JIS文字コードに収録されていない文字については、アクサンやウムラウト等の記号が付いたアルファベットは記号の付かないアルファベットに、中国の簡体字は対応するJISの漢字に、ハングルはカナ読みに置き換えて入力するなどの対応を行っていました。また、多くの外字を作成して管理していました。さらに、アジア言語資料の書誌データは、Unicodeを扱えるパッケージシステムを利用したアジア言語OPACでNACSIS-CATを利用して作成していました[7]

多種多様な文字コードを扱える環境を整えることは長年の課題でしたが、2012年1月にUnicodeを扱える新システムを導入することにより実現しました[8]

<異体字>

意味や発音が同じだけれども形が異なる文字を異体字と呼びます。ある文字どうしが異体字かどうかは辞書によって異なります。
俗字や略字など、辞書によってさまざまな種類の異体字が定義されていますが、代表的なものとしては、新字体・旧字体をあげることができます。漢字の字体は、康熙字典に基づいていることが多く、これを旧字体、正字体いわゆる康煕字典体などと呼びます。これに対し、内閣が告示した「当用漢字字体表」や「常用漢字表」に標準字体や例字体として示されている364組の簡略化された字体を新字体と呼びます。ただし、漢和辞典に示されている新字体、旧字体がこれらの内閣告示と一致しない場合もあります。

新字体・旧字体の例

新字体
旧字体

【おわりに】

「文字コード講座」と題した3回の連載で、おもに、目録作成業務等の担当者が知っておいた方が良いことという観点で文字コードについてご紹介しました。

文字コードを巡る状況は、大きく変化してきました。現在では、Unicodeが普及し、多種多様な文字を容易に扱える環境が整いつつあります。一方で、Unicodeの仕様は複雑化しており、正しく理解して利用することが難しい場合もあると思います。今回の講座が、より深く正確な知識を得るためのきっかけとなれば幸いです。

上綱 秀治
(かみつな しゅうじ 関西館)

[1]http://www.unicode.org/versions/Unicode8.0.0/ch18.pdf, (参照 2016-04-20).

[2]第1回の【アルファベット―ASCIIとISO/IEC 646】の章もあわせてご覧ください。

[3]たとえば、「<span xml:lang="en" lang="en">&#x5c;</span>」と記述すれば、バックスラッシュが表示される可能性が高いです。

[4]「Unicode」の列には、「U+304B U+309A」のように、便宜上、コード間にスペースを入力してありますが、実際には入力する必要はありません。

[5]当館作成書誌データに使用する文字種の取り扱い基準を下記のページに掲載しています。
http://www.ndl.go.jp/jp/data/catstandards/characters/index.html, (参照 2016-04-20).

[6]たとえば「龍」は「竜」に置き換えていました。
http://www.ndl.go.jp/jp/data/faq/characters.html, (参照 2016-04-20).

[7]当時のアジア言語の書誌データ作成については、本誌2011年4号(通号19号)でご紹介しています。
林瞬介, コラム:書誌データ探検 アジア言語資料編,
http://dl.ndl.go.jp/view/download/digidepo_3485820_po_2011_4.pdf?contentNo=1#page=17, (参照 2016-04-20).

[8]本誌2012年2号(通号21号)も合わせてご覧ください。
外国資料課整理係, コラム:書誌データ探検 欧米諸言語資料編,
http://dl.ndl.go.jp/view/download/digidepo_3500433_po_2012_2.pdf?contentNo=1#page=12, (参照 2016-04-20).

参考文献
連載第1回に掲載しています。


このページの先頭へ

NDL書誌情報ニュースレター(年4回刊)

ISSN 1882-0468/ISSN-L 1882-0468
2016年2号(通号37号) 2016年6月28日発行

編集 国立国会図書館収集書誌部
発行 国立国会図書館

〒100-8924 東京都千代田区永田町1-10-1

メールアドレス:bib-newsアットマークエヌディーエルピリオドジーオーピリオドジェーピー(ニュースレター編集担当)