パソコンを整理していたら、昔書きかけて途中で放置していた記事のカケラが出てきた。
もったいないので、うpしてみる。

ただ、お蔵入りしていたあけあって毒入りです。うわはははh ヽ(;´Д`)ノ


-----------------------

前回、「firefox EUCが最低」という記事において、ちょっとタイトルが下品だったこともあり、
各方面からお叱りのお言葉を頂いた。
深く反省したい。

ところで、ネットでいくつかご意見を拾ってみると、どうもIEがJIS X 212(補助漢字)を
サポートしていないのが規格違反、Firefoxを責めるのは筋違い。という意見を持つ方が結構いらっしゃるみたい。

IEがEUC-JPのWebページの表示・送受信にCP51932というEUC-JPとは似て非なる文字コードを使っている事はたしかで、
そこに弁解の余地はないのだが、昔はみんなJIS X 212なんか使わないのがマナーだ。とか言われていたのに今はクライアントソフトの欠陥扱いなのね(n'ω'`)
時代は変わるなぁ。

さてさて、そんなこんなでモヤモヤしたものを抱えているうちに、Web検索で、MySQLのMLの過去ログ公開ページにてEUC-JPでは補助漢字はオプショナルという意見をみかけたので(おお、よく見たら、これって森山さんの投稿なのね)
ちょいと定義を調べてみました。

興味のある人は以下のリンクと前後のスレッド文章を適当にあさってみてくださいな。
つ http://www.mysql.gr.jp/mysqlml/mysql/msg/12389



まず、IANAのcharset registryのEUC-JPの定義はこちら

ソース http://www.iana.org/assignments/character-sets


Name: Extended_UNIX_Code_Packed_Format_for_Japanese
MIBenum: 18
Source: Standardized by OSF, UNIX International, and UNIX Systems
Laboratories Pacific. Uses ISO 2022 rules to select
code set 0: JIS Roman (a single 7-bit byte set)
code set 1: JIS X0208-1990 (a double 8-bit byte set)
restricted to A0-FF in both bytes
code set 2: Half Width Katakana (a single 7-bit byte set)
requiring SS2 as the character prefix
code set 3: JIS X0212-1990 (a double 7-bit byte set)
restricted to A0-FF in both bytes
requiring SS3 as the character prefix
Alias: csEUCPkdFmtJapanese
Alias: EUC-JP (preferred MIME name)





これを見ると残念ながら、RFCでも国や標準団体の決めたデジュール・スタンダードでもないので、規格番号とかがなく、「いわゆるEUC-JP」というちょっと悲しいポインタになっていることがわかる。

いちおうUIとかOSFとかいう文字はあるので、
僕が聞いたことがある説の中で一番トンデモな「EUC-JPとはJIS X 213 EUCの事である!」
という説は却下していいと思うが、それ以上は業界の暗黙の合意に頼っているのが現状である。

ところで、これ、将来MSやJIS委員会が自分のスペックの片隅にOSFとかUNIX Internationalとか
いう文字をいれたら「うちのEUCこそはEUC-JPの正式な定義である」と名乗れるんですかね。
# いやいや、もちろん冗談ですぞヽ(;´Д`)ノ



でも、まあ、業界内のだいたいの合意というものはあるようで、


UNIX SYSTEM V リリース 4 日本語環境共通規約 第1版
1992/7/10 初版発行
ISBN: 4-8101-8359-7
トッパン

または

UI-OSF 日本語環境実装規約
Version 1.1
1993 年5 月21 日
UI-OSF Japanese Localization Group

を典拠にあげる人が多かった。


んで、まずは「UNIX SYSTEM V リリース 4 日本語環境共通規約 第1版」のほうを
めくってみると(今持ってる人は少ないと思うが)


P11
2.1.2 日本語文字セットに関する共通規約

ここでは各プラットフォームメーカがサポートすべき文字セットについて述べます

(1) サポートを必須とする文字セット

各プラットフォームメーカは以下の文字セットのサポートを必須とします。なお、ここで「文字セットのサポート」とは:

- 日本語を扱うプログラムは以下の文字セットを日本語として正しく処理できること。
- 入出力装置が日本語を扱える場合、以下の文字セットの入力や表示、印刷が可能なこと

を示します。

・ ASCII
・ JIS X 208-1990

ただし以下の点に注意が必要です
(中略)


(2) サポートを推奨する文字セット

以下の文字セットはサポートを推奨しますが、これは必須ではありません(レベル2です)。

・ JIS X 201-1976 カタカナ


以下の文字セットは現在サポートを義務付けませんが、将来的にはサポートが必要となるでしょう。

・ JIS X 0212-1990 補助漢字



となっており、なるほど、たしかにJIS X 201カタカナとJIS X 212は必須じゃないね。


次はUI-OSF 日本語環境実装規約を見てみる。こっちはWebでPDFが公開されている。
教えてくださった沼田先生に感謝。


附属書D (参考) 応用プログラム開発者向けのガイド

D.1.1 共通日本語文字集合日本語文字集合としては,次に示す文字集合が共通に使用できます。
(1) ISO 646 IRV (ASCII) 又はJIS X 0201 ローマ字用7 単位符号
(2) JIS X 0208 情報交換用漢字符号

D.1.2 多くの実装で使用できる日本語文字集合
次に示す文字集合は,この実装規約が提供を推奨しているものです。ただし,提供を義務付けられてはいませんので,この文字集合が使えない実装もあります。特に,シフトJIS を使用する場合,C1 制御文字及びJIS X 0212 情報交換用漢字符号{補助漢字は使用できません。
(1) JIS X 0201 片仮名用図形キャラクタ
(2) ISO 6429 が規定するC1 制御文字
(3) JIS X 0212 情報交換用漢字符号{補助漢字



となっており、やはりJIS X 201 や JIS X 212は必須じゃないとされている。
ただし、前述のトッパン本とはややニュアンスが異なるようである。


ただ、この規格書、どうもよく分からないのが、付属C,D全体
(ようするにこの辺で引用しているあたりの章全体)が「参考」情報とされており、
規格本体からはずされてしまっている。

規格と関係ないところで、実装が必須かどうかを定義するってそれ一体何の意味があるのよ?!
と疑問に思わなくも無いが、

出典[UI-OSF-USLP 共同技術資料:日本語EUC の定義と解説(1991 年12 月12 日)]

という一文があったので、もしかしたら、出典は別にあってこっちはタダの引用だよん。
という意思表示のつもりだったのかもしれない。
ただ、この[UI-OSF-USLP 共同技術資料:日本語EUC の定義と解説(1991 年12 月12 日)]という
規格書はいまや完全に入手不可能なので、何が書いてあったのか全然分からない。



まとめると

・EUC-JPの明確な定義はある
・しかし、それはRFCやISOの規格にはなっていない
・JIS X 201(半角カタカナ)と JIS X 212(補助漢字)は必須ではないと書いてある
・しかしながら、書いてある本から察するにどう考えても適用範囲はいわゆるUNIXに限られそう
・んじゃ、UI-OSFに入っていないOSはどう解釈すべきかというと・・・・
 世間にまったく合意がないように思える
・たぶん、MSは自分は適用範囲外だから、ルールを逸脱して好き勝手やっても問題ない。
 と思って、今のあやしげなIE上のEUC-JPの実装になっていると思われ
・でも、Web上での世間の声を聞いていると、逆に、EUC-JPの文字セット定義は
 IANAのcharset registry定義で「定義」されていて、「必須じゃない」という文章が
 適用範囲外なので、WindowsはUnixと異なり補助漢字実装必須なんだ。
 IEが補助漢字実装しないの許せーーんヽ(;´Д`)ノ
 とでも、思っているとしか思えない、IEの補助漢字未実装を責める声多数


うーむ、一体何がここまで混乱を招いた原因なんですかね?
なんとなく、EUC-JPの典拠規格が手に入りにく杉。というのが根本的に問題な気がするけど・・・

あと、つくづく思ったのは昔とは補助漢字の位置づけが変わったな。ということ。
昔は、んなもん使えるマシンの方が少なかったのでネットワーク上でんなもん使うやつがおバカという共通認識があったと思うのですよ。
それがUnicodeの普及によってJIS X 212が使えるマシンのほうが多数派になっちゃったから、規定がいいかげんなEUC-JPは色々運用に不都合が出てきている気がする。

やはり、いっそのことEUCは捨てて、みんなでUTF-8に移行するしかないんかね?
#携帯サイト問題(携帯電話はUnicodeをサポート事が多い)は残るけど


・・・時代は変わった!


どっちなのさ?
どっちなのさ?! ランキング!