[TR X 0008]は,符号化文字集合として[JIS X 0221]及び[Unicode 2.0]を採用しており,これは日本語文字をすべて含む。文字符号化スキームとしてはUTF-8及びUTF-16を推奨し,これらの実装を義務付けている。既存の文字符号化スキームも, [Unicode 2.0]の文字だけを扱う限りオプションとしてすべて許容している。
しかし,[TR X 0008]では,日本語文字の交換に広く使われてきた既存の文字符号化スキームはほとんど説明されてなく,オプションの一つとして許容されているに過ぎない。SMTP及びHTTPなどのプロトコル並びに情報交換用ファイルで,どの文字符号化スキームを用いるかについても,特に定められてはいない。
既存の文字符号化スキームと[JIS X 0221]及び [Unicode 2.0]との対応も不明確である。相互に異なるいくつかの変換表が用いらており,複数のXMLプロセサが異なる結果を出力する場合がある。
これらの問題点を明確にするため,この標準情報(TR)では文字符号化スキームについての明確化を行った。既存の文字符号化スキームを用いた場合の問題点を解決できたわけではないが,どのような問題点があるかは整理されている。
シフトJISから[JIS X 0221]及び[Unicode 2.0]への変換表の相違点は,大きく四つ存在する。
第一に,0x5C及び0x7Eは,x-sjis-unicode-0.9及びx-sjis-jisx0221-1995ではそれぞれ円記号及びオーバラインに変換するが,x-sjis-cp932及びx-sjis-jdk1.1.7ではそれぞれバックスラッシュ及びチルドに変換する。
第二に,0x8160(WAVE DASH/波ダッシュ), 0x8161(DOUBLE VERTICAL LINE/双柱), 0x817C(MINUS SIGN/負符号,減算記号), 0x8191(CENT SIGN/セント記号), 0x8192(POUND SIGN/ポンド記号), 0x081CA(NOT SIGN/否定)は, x-sjis-cp932だけが他と異なる変換を行う。
第三に,0x815C(EM DASH/ダッシュ(全角))は,x-sjis-jisx0221-1995 ではU+2014(EM DASH)に変換するが,他ではU+2015(HORIZONTAL BAR)に変換する。
第四に,x-sjis-cp932だけがNEC特殊文字,NEC選定IBM拡張文字,IBM拡張文字,ユーザ外字を含んでいる。
シフトJISでのコード値 | x-sjis-jdk1.1.7 | x-sjis-unicode-0.9 | x-sjis-jisx0221-1995 | x-sjis-cp932 |
---|---|---|---|---|
0x5C(YEN SIGN/円記号) | U+005C(REVERSE SOLIDUS) | U+00A5(YEN SIGN) | U+00A5(YEN SIGN) | U+005C(REVERSE SOLIDUS) |
0x7E(OVERLINE/オーバライン) | U+007E(TILDE) | U+203E(OVERLINE) | U+203E(OVERLINE) | U+007E(TILDE) |
0x815C(EM DASH/ダッシュ(全角)) | U+2015(HORIZONTAL BAR) | U+2015(HORIZONTAL BAR) | U+2014(EM DASH) | U+2015(HORIZONTAL BAR) |
0x815F(REVERSE SOLIDUS/逆斜線) | U+005C(REVERSE SOLIDUS) | U+005C(REVERSE SOLIDUS) | U+005C(REVERSE SOLIDUS) | U+FF3C(FULLWIDTH REVERSE SOLIDUS) |
0x8160(WAVE DASH/波ダッシュ) | U+301C(WAVE DASH) | U+301C(WAVE DASH) | U+301C(WAVE DASH) | U+FF5E(FULLWIDTH TILDE) |
0x8161(DOUBLEVERTICAL LINE/双柱) | U+2016(DOUBLEVERTICAL LINE) | U+2016(DOUBLEVERTICAL LINE) | U+2016(DOUBLEVERTICAL LINE) | U+2225(PARALLEL TO) |
0x817C(MINUS SIGN/負符号,減算記号) | U+2212(MINUS SIGN) | U+2212(MINUS SIGN) | U+2212(MINUS SIGN) | U+FF0D(FULLWIDTH HYPHEN-MINUS) |
0x8191(CENT SIGN/セント記号) | U+00A2(CENT SIGN) | U+00A2(CENT SIGN) | U+00A2(CENT SIGN) | U+FFE0(FULLWIDTH CENT SIGN) |
0x8192(POUND SIGN/ポンド記号) | U+00A3(POUND SIGN) | U+00A3(POUND SIGN) | U+00A3(POUND SIGN) | U+FFE1(FULLWIDTH POUND SIGN) |
0x81CA(NOT SIGN/否定) | U+00AC(NOT SIGN) | U+00AC(NOT SIGN) | U+00AC(NOT SIGN) | U+FFE2(FULLWIDTH NOT SIGN) |
13区,89-92区,115-119区の拡張文字 | なし | なし | なし | あり |
x-eucjp-unicode-0.9及びx-eucjp-jisx0221-1995は,[US-ASCII], [JIS X 0201]の片仮名用図形文字, [JIS X 0208], 及び[JIS X 0212]において定義されている文字だけを表現する。オープングループ日本ベンダ協議会が定義した変換表[Unicodeとユーザ定義文字・ベンダ定義文字]は,これに加えて,IBM拡張文字(0x8FF3F3から0x8FF4FEの範囲),NEC特殊文字(0xADA1から0xADFCの範囲),ユーザ定義文字(0xF5A1から0xFEFEの範囲及び0x8FF5A1から0x8FFEFEの範囲に分散して配置される。)を表現する。
0x20から0x7Eの範囲においては,x-eucjp-unicode-0.9, x-eucjp-jisx0221-1995, x-eucjp-open-19970715-ms, x-eucjp-open-19970715-asciiのいずれも,日本語EUCの定義どおり[US-ASCII]とみなして変換している。x-eucjp-open-19970715-0201だけが例外であり,[JIS X 0201]に従って次の変換を採用している。
EUCでのコード値 | 変換先 |
---|---|
0x5C(REVERSE SOLIDUS/逆斜線) | U+00A5(YEN SIGN) |
0x7E(TILDE/チルド) | U+203E(OVERLINE) |
0x8EA1から0x8EDFの範囲には,[JIS X 0201]での片仮名用図形文字が配置されるが,すべての変換表で[JIS X 0221]及び[Unicode 2.0]の互換性領域内のU+xFF61から U+xFF9Fの範囲に変換している。相違はない。
[JIS X 0208], [JIS X 0212]で規定されている文字に関しては, x-eucjp-jisx0221-1995とx-eucjp-open-19970715-0201とはまったく等しい。
x-eucjp-unicode-0.9は,これらと0xA1BD(EM DASH/ダッシュ(全角))とが異なる。
x-eucjp-open-19970715-asciiでは, 0xA1B1(OVERLINE/オーバライン,論理否定記号), 0xA1C0(REVERSE SOLIDUS/逆斜線), 0xA1EF(YEN SIGN/円記号), 0x8FA2B7(TILDE/チルド)の四つの文字が異なる。
x-eucjp-open-19970715-msでは, 0xA1BD(EM DASH/ダッシュ(全角)), 0xA1C0(REVERSE SOLIDUS/逆斜線), 0xA1C1(WAVE DASH/波ダッシュ), 0xA1C2(DOUBLE VERTICAL LINE/双柱), 0xA1D0(MINUS SIGN/負符号,減算記号), 0xA1F1(CENT SIGN/セント記号), 0xA1F2(POUND SIGN/ポンド記号), 0xA2CC(NOT SIGN/否定), 0x8FA2B7(TILDE/チルド), 0x8FA2C3(BROKEN BAR/破断線)の文字が異なる。
変換表x-eucjp-open-19970715-ms, x-eucjp-open-19970715-0201, x-eucjp-open-19970715-asciiは, IBM拡張文字,NEC特殊文字,ユーザ定義文字(の領域)を含むため,IBM拡張文字,NEC特殊文字,ユーザ定義文字をUnicodeに変換している。これらの変換は一致する。しかし, x-eucjp-unicode-0.9, x-eucjp-jisx0221-1995は,これらの文字に関して言及していない。
日本語EUCでのコード値 | x-eucjp-unicode-0.9 | x-eucjp-jisx0221-1995 | x-eucjp-open-19970715-ms |
---|---|---|---|
0x5C(REVERSE SOLIDUS/逆斜線) | U+005C(REVERSE SOLIDUS) | U+005C(REVERSE SOLIDUS) | U+005C(REVERSE SOLIDUS) |
0x7E(TILDE/チルド) | U+007E(TILDE) | U+007E(TILDE) | U+007E(TILDE) |
0xA1B1(OVERLINE/オーバライン,論理否定記号) | U+FFE3(FULLWIDTH MACRON) | U+FFE3(FULLWIDTH MACRON) | U+FFE3(FULLWIDTH MACRON) |
0xA1BD(EM DASH/ダッシュ(全角)) | U+2015(HORIZONTAL BAR) | U+2014(EM DASH) | U+2015(HORIZONTAL BAR) |
0xA1C0(REVERSE SOLIDUS/逆斜線) | U+005C(REVERSE SOLIDUS) | U+005C(REVERSE SOLIDUS) | U+FF3C(FULLWIDTH REVERSE SOLIDUS) |
0xA1C1(WAVE DASH/波ダッシュ) | U+301C(WAVE DASH) | U+301C(WAVE DASH) | U+FF5E(FULLWIDTH TILDE) |
0xA1C2(DOUBLE VERTICAL LINE/双柱) | U+2016(DOUBLE VERTICAL LINE) | U+2016(DOUBLE VERTICAL LINE) | U+2225(PARALLEL TO) |
0xA1D0(MINUS SIGN/負符号,減算記号) | U+2212(MINUS SIGN) | U+2212(MINUS SIGN) | U+FF0D(FULLWIDTH HYPHEN-MINUS) |
0xA1F1(CENT SIGN/セント記号) | U+00A2(CENT SIGN) | U+00A2(CENT SIGN) | U+FFE0(FULLWIDTH CENT SIGN) |
0xA1F2(POUND SIGN/ポンド記号) | U+00A3(POUND SIGN) | U+00A3(POUND SIGN) | U+FFE1(FULLWIDTH POUND SIGN) |
0xA1EF(YEN SIGN/円記号) | U+FFE5(FULLWIDTH YEN SIGN) | U+FFE5(FULLWIDTH YEN SIGN) | U+FFE5(FULLWIDTH YEN SIGN) |
0xA2CC(NOT SIGN/否定) | U+00AC(NOT SIGN) | U+00AC(NOT SIGN) | U+FFE2(FULLWIDTH NOT SIGN) |
0x8FA2B7(TILDE/チルド) | U+007E(TILDE) | U+007E(TILDE) | U+FF5E(FULLWIDTH TILDE) |
0x8FA2C3(BROKEN BAR/破断線) | U+00A6(BROKEN BAR) | U+00A6(BROKEN BAR) | U+FFE4(FULLWIDTH BROKEN BAR) |
日本語EUCでのコード値 | x-eucjp-open-19970715-0201 | x-eucjp-open-19970715-ascii |
---|---|---|
0x5C(REVERSE SOLIDUS/逆斜線) | U+00A5(YEN SIGN) | U+005C(REVERSE SOLIDUS) |
0x7E(TILDE/チルド) | U+203E(OVERLINE) | U+007E(TILDE) |
0xA1B1(OVERLINE/オーバライン,論理否定記号) | U+FFE3(FULLWIDTH MACRON) | U+203E(OVERLINE) |
0xA1BD(EM DASH/ダッシュ(全角)) | U+2014(EM DASH) | U+2014(EM DASH) |
0xA1C0(REVERSE SOLIDUS/逆斜線) | U+005C(REVERSE SOLIDUS) | U+FF3C(FULLWIDTH REVERSE SOLIDUS) |
0xA1C1(WAVE DASH/波ダッシュ) | U+301C(WAVE DASH) | U+301C(WAVE DASH) |
0xA1C2(DOUBLE VERTICAL LINE/双柱) | U+2016(DOUBLE VERTICAL LINE) | U+2016(DOUBLE VERTICAL LINE) |
0xA1D0(MINUS SIGN/負符号,減算記号) | U+2212(MINUS SIGN) | U+2212(MINUS SIGN) |
0xA1F1(CENT SIGN/セント記号) | U+00A2(CENT SIGN) | U+00A2(CENT SIGN) |
0xA1F2(POUND SIGN/ポンド記号) | U+00A3(POUND SIGN) | U+00A3(POUND SIGN) |
0xA1EF(YEN SIGN/円記号) | U+FFE5(FULLWIDTH YEN SIGN) | U+00A5(YEN SIGN) |
0xA2CC(NOT SIGN/否定) | U+00AC(NOT SIGN) | U+00AC(NOT SIGN) |
0x8FA2B7(TILDE/チルド) | U+007E(TILDE) | U+FF5E(FULLWIDTH TILDE) |
0x8FA2C3(BROKEN BAR/破断線) | U+00A6(BROKEN BAR) | U+00A6(BROKEN BAR) |
日本語HTML文書では, 文字化けがしばしば発生することが知られている。これは, メディアタイプtext/htmlのcharsetパラメタを正しく付けているHTML文書がほとんど存在しないことによる。この問題については, [charsetパラメタの勧め]に詳しい情報がある。
XMLで文字化けを避けるためには,必ず正しくcharsetパラメタを設定しなければならない。設定ができないサーバを使用してはならない。
この標準情報(TR)の原案を作成した(財)日本規格協会 情報技術標準化研究センター(INSTAC)の高速Webにおける標準化に関する調査研究委員会, 作業グループ(WG3) 及びXML特別作業グループ(XML-SWG)の委員構成を, その順に次に示す。
氏名 | 所属 | |
---|---|---|
(委員長) | 池田 克夫 | 京都大学 |
(幹事) | 鯵坂 恒夫 | 和歌山大学 |
(幹事) | 小町 祐史 | 松下電送システム株式会社 |
(幹事) | 平山 亮 | ヒューレット・パッカード日本研究所 |
内山 光一 | 株式会社東芝 | |
久保田 靖夫 | 大日本印刷株式会社 | |
黒川 利明 | 日本アイ・ビー・エム株式会社 | |
斎藤 伸雄 | 凸版印刷株式会社 | |
澤田 位 | 財団法人日本規格協会 | |
橋爪 邦隆 | 通商産業省工業技術院標準部 | |
長谷川 敬太 | 日本電信電話株式会社 | |
二本松 勝 | 株式会社日立製作所 | |
氏兼 裕之 | 通商産業省機械情報産業局 | |
古瀬 幸広 | 立教大学 | |
松本 充司 | 早稲田大学 | |
柳町 昭夫 | 株式会社NHKアイテック | |
(事務局) | 山中 正幸 | 財団法人日本規格協会 |
氏名 | 所属 | |
---|---|---|
(主査) | 小町 祐史 | 松下電送システム株式会社 |
(幹事) | 内山 光一 | 株式会社東芝 |
奥井 康弘 | 株式会社日本ユニテック | |
上村 圭介 | 国際大学グローバルコミュニケーションセンター | |
北野 敬介 | 日本サン・マイクロシステムズ株式会社 | |
黒川 利明 | 日本アイ・ビー・エム株式会社 | |
郡山 龍 | 株式会社アプリックス | |
澤田 位 | 財団法人日本規格協会 | |
山東 滋 | 株式会社日立製作所 | |
田中 義之 | 通商産業省機械情報産業局 | |
内藤 広志 | 大阪工業大学 | |
仁保 信市 | 株式会社東芝 | |
乃木 篤 | 株式会社CSK | |
中島 知行 | 通商産業省工業技術院標準部 | |
オブザーバ | 浅利 千鶴 | 浅利会計事務所 |
オブザーバ | 稲垣 博人 | 日本電信電話株式会社 |
オブザーバ | 吉川 徹志 | 通商産業省機械情報産業局 |
(事務局) | 山中 正幸 | 財団法人日本規格協会 |
氏名 | 所属 | |
---|---|---|
(主査) | 村田 真 | 富士ゼロックス情報システム株式会社 |
内山 光一 | 株式会社東芝 | |
小町 祐史 | 松下電送株式会社 | |
檜山 正幸 | 檜山オフィス | |
奥井 康弘 | 株式会社日本ユニテック | |
高橋 亨 | 株式会社日立製作所 | |
川俣 晶 | 株式会社ピーデー | |
上村 圭介 | 国際大学グローバルコミュニケーションセンター | |
今郷 詔 | 株式会社リコー |