Copyright(c)AOTAKA 1995-2003 - www.aotaka.jp |
自分の機械の機種依存文字をきちんと把握し、決して使わないようにすることはネットワーカーの常識である。
日本工業規格(JIS)では情報交換用文字が定められています。歴史的に電子機器ではこの規格をシステムの事情に合わせてカスタマイズして利用していることがほとんどです。よって基本となるJISに則った文字は多くの機械で利用できると言えます。
「半角で○○を入力」と言われたらこの文字だと思って間違いないでしょう。ASCII文字や1バイト文字と呼ばれることもあります。
JIS X0201(Latin) はメールやWebページのアドレスを入力するときなどに使用する文字です。元々は米国情報交換用文字符号ASCIIを国内規格として定義しなおしたものです。
なお全世界共通に使うことができる文字ですので外国とのメール交換では、この表の文字が使えると覚えておきましょう。
※円記号「¥」は、US-ASCIIではバックスラッシュ「\」です。
※米国以外ではこの他にいくつかの文字に違う文字が割り当てられています。
※2バイト文字(全角文字)の英数字と間違わないように注意。
日本工業規格(JIS)で定めている情報交換用の文字は以下の通りです。ここではスペースの都合で非漢字部分のみを掲載しています。
漢字は量が多いので省略
ここでの注目点は青で示した文字です。青で示した文字は1983年に追加された文字です。そのため、非常に古いワープロ専用機やパソコン(当時80%のシェアを持っていたPC-9801シリーズでも出ませんでした。)では利用できないこともあり、Windowsが普及する以前は「♪」なども「新JIS音符」などと区別され、機種依存文字に分類された時代があります。
しかし現在普及しているWindowsやMacOS(Macintosh)では標準的に利用できますし、メール機能付きの携帯電話が登場したのは規格制定の遥か後ですので、通常は利用できると考えて良いでしょう。
次に汎用的に使用できない文字を例示します。Microsoftが定めた拡張であるため仲間内などで同等機種を扱っている範囲ならば問題はありませんが、他の環境下ではほぼ異常を来す文字です。通常は絶対に使わないようにします。Windows、携帯電話などで採用されています。
※Windows、PDA、携帯電話ユーザーは要注意
丸付き文字やローマ数字はうっかり使ってしまうので、特に気を付けましょう。
下に示す文字は「NEC PC-9800シリーズ」という機種で利用できた文字です。1985年〜1997年頃の日本では、良くも悪くもPC-9800シリーズが標準パソコンの地位を占めていたため、現在広く使われているWindows日本語版でも普通に利用できてしまいます。
しかし日本工業規格(JIS)で認められていない文字のため、Windows以外のパソコンや機械で利用できるかは、その機械次第です。
例えばMacOS(Macintosh)では独自の文字を割り当てているために全く別の文字として表示されてしまいます。またUNIX、ワープロ専用機などでは文字が表示されない、全く別の文字が表示されるなどの障害が発生する可能性もあるため、あまり使うべきではありません。特に丸数字やハシゴ高(真ん中の口がハシゴのようになっているデザインの“高”)などは使われがちです。
上段がNEC特殊文字、下段がNEC選定IBM拡張文字 (Windows95/98/NT4/2000/Meなどでの表示が可能です)
注: 平成12年制定のJIS X0212:2000では一部の記号類がJISへ追加されましたが、X0212自体が普及していないので実用上は使用すべきでありません。 |
■丸数字 | 丸数字などは文書の見やすさを飛躍的に高めることができるため、官公庁ですら間違って使用するケース…要は無知なのですが後を絶ちません。しかし、MacOS(Macintosh)では全く別の文字で表示されてしまうなど、本来は互換性に乏しいのです。 | (1)、(2)… I、II、III、IV… <OL>…で代用 |
■数学記号 | 多くがJIS X0208-1983文字で代替えできますので、そちらを使います。 | ∪∩¬∠⊥≡≒√∵∫で代用 |
■(株)など | プロポーショナルフォントを使えば、遜色のない代替えが可能ですので、やはり普段から(株)やミリなどの様に通常の文字として書くのが賢明です。cmなんて何で特殊文字にあるのかなぁ… | (株)、(上)、明治、平方メートル…で代用 |
※インターネットユーザー要注意
X0201 Kana、通称ANKカナ(半角カナ)はパソコンという言葉が登場する十年以上も前から存在する標準規格ですが、インターネット上では絶対に使用してはいけない文字に加えられています。
ちなみにパソコン通信※では1980年代前半はANKでのみで通信していたほどで、通常は使用しても良い文字となります。
※パソコンを用いたインターネット接続という意味ではありません。お間違えの無いように。
補足1 : 半角カナって何? | ||||
ところで半角カナとは元来 『MS-DOSなどの(等幅フォントを用いる)環境で、縦横比が1:1の漢字などに対して半分の横幅しかないカタカナ』
という意味でした。JIS・ShiftJISコードではデータ量も全角文字の半分です。正確には
と表現するのが適当です。 しかし現在主流のWindowsやMacOS(Macintosh)などでは見栄えの良いプロポーショナルフォントが使用されるため、実際の大きさは「半角」ではないので注意が必要です。 下の図はどちらも上段が半角文字、下段が全角文字のカタカナです。MS-DOSの表示では明らかに違いが分かりますが、Windowsの表示では区別が難しくなっています。フォントによってが全く見分けがつきません。
自分自身で半角カナを入力してしまっていないかを見分ける方法ですが、濁点「゛」や半濁点「゜」を伴うカタカナを入力したときに、一文字として表されるか二文字として表されるかという点が、一番簡単な見分け方です。 半角カナで入力されている場合は、例えば「ガ」という文字ならば「カ」と「゛」の様に二文字として表わさます。このような場合は、インターネット上で使用してはならない文字を使っていると言うことになりますので、改める必要があります。 |
補足2 : 半角カナって何故インターネットで使っちゃいけないの? | ||
初期のインターネットでは情報を7ビット流していたために、8ビット符号(80番以降の文字コード)がうまく処理できないシステムが20世紀末になっても存在します。混乱を避けるためにも8ビット符号は避けられるならば避ける傾向にあります。(といってもShift
JISで書かれたWebページも含め、日欧では8ビット全盛ですが) 今時の感覚では何故8ビットが普通なのに7ビットを使うのかと思われるかもしれませんが、これは1960〜70年代は記憶用メモリーが非常に高価だったことや、システムや通信系統の信頼性が低かったことに起因します。 当時は英数字の記憶や通信に最低限必要な7ビットを文字記憶に当て、8ビット目は信頼性確保のためのエラーチェックに使用することも多い時代でした。また現在の8ビット=1バイトとするコンピューターだけではなく7ビットや15ビットなどを1バイトとしたメモリー構造のコンピューターも珍しくはありませんでした。 ところで 「半角カナは8ビットだからインターネットでは使えない」 まず文字コードにJIS以外(Shift JISやEUC-JP)を使っているWebページでは漢字コードで8ビット目も使っているではないかという問題がありますが、8ビットのまま送信しても良いし(少し運任せ)、MIMEなどの変換法で7ビットにしてから送信しても良いので特に問題があるわけではありません。これを受信する側が対応していれば7ビットだろうが8ビットだろうが実は良かったのです。 では、何故使ってはいけないと言われるのかといえば実はインターネットで日本語を扱うときに用いられるISO 2022-JP(ISO 2022のサブセット、日本で使うときはココまで対応しなさいという指針となる)はUS-ASCII、JIS X0201 Latin(英数)、JIS C6226-1978、JIS X0208しかサポートしていないのです。 メールやネットニュースはJIS 使用できる文字に半角カナが含まれていないのならば、ISO 2022-JPを使っているメール、ネットニュース等では絶対禁止なのも理解できます。 半角カナ=8ビットコードという説明は間違いです。ではWEBはというと、今度はUNIXの多くが半角カナに対応しないという問題にブチ当たります。EUC-JPを使うUNIXでは半角カナは0x8E??というコードで表現できるはずですが、文字の幅が半角なのに2バイトなのは処理が煩雑になるとの理由から、半角カナをサポートしていないシステムが多かったのです。(半角カナを積極的にサポートする理由もなかったし。) この2つの問題から、インターネットでは半角カナの利用は制限すべきとの結論は見えてきましたが、ここまでならどうも一般に言われる理由は間違っているようです。 さらに歴史を下って、ユーザーが普段から半角カナを利用しているパソコンでもインターネットが容易に利用できるようになりました。Windows95の登場です。 メール送信に用いるISO 2022-JPでサポートする文字種に、半角カナは含まれていないため、メールで半角カナを使用できないハズです。 もしもユーザーが誤って半角カナをメールで送信しようとした場合はユーザーに警告するか、さもなくば一番許容できる回避策である「全角カタカナに変換する」などを行えばよいのですがMicrosoft Windowsのプログラマーは違いました。 インターネットと今まで無縁であったWindowsのソフト開発者は相手の都合を全く無視してインターネットに半角カナを自分勝手な方法で流し始めたのです。ISO 2022-JP(7ビットコード)で動いているシステムに、JIS8方式のカナ(8ビットコード)を送りつけ、Microsoft Internet Mailに至ってはメールでShift JISやEUCを使ってみたり、7ビットしか許容できないシステムのためにあるMIMEのヘッダーに堂々と8ビットコードを使っている様はもはや何を考えているんだかという状態です。 *MIME…インターネット上で支障無くデータを送信するために、8ビットデータを7ビットに変換するための方式 有識者から散々叩かれてメールソフトの異常事態は何時の間にかコッソリと改善されたようですが、WEB上で半角カナを垂れ流すWindowsユーザーという構図は今でも全く改善されていません。 でもこんな事を長々と説明したところで、素人には理解しろと言っても無理な話ですから、とりあえず 「半角カナは8ビットだからインターネットでは使えない」 と簡略化して言われるのです。 |
今日、パソコン通信やインターネットで文字を正しく送受信できるのは、ひとえに情報交換用文字集合という表(文字コード表)に従って文字を数値化する手段が確立されているからです。
ところがJISの「文字コード表」には未定義の隙間があり、パソコンやワープロなどを実際に作るメーカーは、そこへ勝手な文字を追加してしまいました。もちろん勝手に追加した独自の文字はその機種でしか表示できないので機種に依存する文字…つまり「機種依存文字」、「環境依存文字」となります。
本来、公には存在しないはずの文字が一部機種・環境限定で存在していると言う事態は本格的なパソコン通信時代に入ってから大きな問題となりました。そして当然、意志疎通の障害となる物として世間から忌み嫌われることとなります。パソコン通信が全盛の時代にはそれに便乗したイジメもよくある光景でした。
メーカー・機種 | 機種依存文字の俗称 | |
NEC PC-9800 | NEC特殊文字(98文字・NEC拡張) NEC選定IBM拡張文字(〃) |
|
EPSON PC | ||
SHARP X68000 | 1/4角文字・システム外字・2バイト半角など | |
APPLE | Macintosh | KT7依存文字など |
IBM互換機 | DOS/V※ | IBM拡張文字 |
MSX仕様機 | MSX文字(半角ひらがな、半角記号文字) | |
NTT DoCoMo | i-mode | i-mode文字(i-mode絵文字) |
: | : |
それでは機種依存文字について、あまりWindowsユーザーに知られていないディープな(?) 例も見てみましょう。
マイクロソフト標準キャラクターセットとはMicrosoftが定め、Windows3.0より採用した文字セットのことで
|
※NEC PC-9800/EPSON PC-x86シリーズのみ(Windowsユーザーには無関係)
日本電気(NEC)が1997年頃まで一般に販売していたPC-9800シリーズ(現在主流のPC98-NXシリーズとは違います)と、エプソンが販売していた互換機EPSON PCシリーズ固有の文字です。1985〜1997年頃までの国内最大勢力であったPC-9800シリーズは良くも悪くも機種依存文字問題の宝庫です。
他の機種(実質少数派)のユーザーはPC-9800シリーズを目の敵にする風潮があるために、当時のパソコン通信などではしばしば不毛な争いの種になりました。なお上段の半角文字は「2バイト半角」という文字で、NECのハードウエアでは容易に実現可能であっても、通常の処理系では非常に奇異な概念です。Windowsでもサポートはしていません。
[ 文字コード@ | 文字コードA | 文字一覧表 | INDEX ]
以後作成中
JISの非漢字について見てみると、1978年に黒字部分を、1983年に青字部分を制定しました。1995年以降に販売されている製品はJIS X0208-1990に準拠としているのが一般的ですので、図の黒字・青字の文字は使用しても良いと考えられます。
しかし2000年にJIS X0213:2000で制定された茶字部分は、使用するには時期尚早です。この規格は制定されたばかりで、JIS X0213:2000に対応したWindowsや主要なソフトウエアが未だに発表すらされていないのが現状です。(その前にWindowsが将来も対応しない心配もありますが(笑)
)
さらに現在のインターネットで使用されているISO 2022-JPでは、JIS X0213は想定されておらず、勝手に流すことはルール違反に当たります。またMETAタグで
charset=Shift_JIS (iso-2022-jp)などとして発信するのは本則から言えば論外です。
黒字 | 最初(78JIS)からの文字、機種依存性は皆無 |
青字 | 新JIS(83JIS)で新規定義された文字、今は機種依存性は無いと見て良い |
茶字 | 2000JISで新規定義された文字、現状では大半が非対応 ※2000年10月現在では各OSの対応が皆無のために使用しない方が良い |
13区の黒字 | NEC特殊文字、極めて利用率は高いが機種依存性が有る(Macintosh等) ※ピンク地は2000JISで採用、灰色は保留域化 |
1990年代、一般に広く利用されたパソコンの中でNEC PC-9800シリーズだけはJIS X0208-1983(新JIS)以降を全く受け入れませんでした。新JIS制定以前に発売していたシリーズとの互換性の説が有力ですが、最大手のNECが受け入れなかった「新JISで新たに定義された部分」は長らく「機種依存文字」と同等の扱いがなされていました。
DOSの時代はキャラクタージェネレーターという機械部品により文字が表示されていたために変えようもなかったという事情もあります。それがソフトウエアで表示を行うWindows3.1では機種に関係なく新JISをサポートしました。Windowsが全盛になった今となっては機種依存性はなくなったと見て構いません。
日本工業規格(JIS)では、規格が新しく改正されるたびに古い版は無効となりますが、機械に組み込まれたROMやソフトが自然に更新されるわけもなく、どうしても新旧の規格が併用されることになります。このために新旧の微妙な差異が問題となることがあります。特にC6226(現X0208)の1983年改正は差異が大きく、人名漢字などへの影響や、改正の必要性などで大いに議論されることとなりました。
現規格名 | 俗称 | 制定改正時 | 規定している文字 |
JIS X0201 | ANK | C6220-1969 | 『7ビット及び8ビットの情報交換用符号化文字集合』 1バイト文字セット(いわゆる半角英・数・カナ) |
C6220-1976 | |||
X0201:1997 | |||
JIS X0208 | 旧JIS | C6226-1978 | 『7ビット及び8ビットの 2バイト情報交換用符号化漢字集合』 JIS非漢字 JIS第一水準漢字 JIS第二水準漢字 |
新JIS | C6226-1983 | ||
X0208-1990 | |||
X0208:1997 | |||
JIS X0212 | JIS補助漢字 | X0212-1990 | JIS補助漢字 |
JIS X0213 | 2000JIS | X0213:2000 | JIS第三水準漢字・第四水準漢字 |
ここでは、とくに一般人にも問題が深刻なX0208(旧C6226)について箇条書きで説明します。記号については表示されるかされないか一目瞭然なので下の方の図を見てください。
注 : X0208として拡張されたわけではない。X0208拡張用に作られた規格である
また厄介なことにメーカーの方針により、どのJIS規格のどの部分を採用するかが入り交じった状態で、下図のようにモザイクを呈しています。パソコン通信では2・8区・84区の追加有無で78/83を区別する傾向にありますが、実際には単純に78だ83だ90だと切り捨てられません。
■DOS全盛時代の機種による文字種の違い
83 … JIS X0208-1983(新JIS)以降 * … エプソンPC後期では旧JIS、新JISをシステム設定で変更できます。 * … IBM DOS J5.0/Vでは、IBM拡張文字と重複する¬(否定/224C)∵(よって/2268)は未定義になっている。 ※83JISと書いた部分については生産時期により90JIS準拠のものもあります(Win3.1はみんな90JIS) |
機種依存文字ではありませんが、半角の¥(円記号)はASCIIでは\(バックスラッシュ)と定義されており、環境によってはバックスラッシュとして表示されることがあります。しかも日本語が扱える環境であるにもかかわらずバックスラッシュで表示する処理系もあるので困りものです。
これはASCIIを各国でローカライズするために作られた規格「ISO 646」により0x5Cを含む12文字は各国で自由な記号に置き換えて良いことになっているために起こる混乱です。ドットプリンターなどの説明書に載っている表を見ると各国の違いが分かります。
コード | 0x23 | 0x24 | 0x40 | 0x5B | 0x5C | 0x5D | 0x5E | 0x60 | 0x7B | 0x7C | 0x7D | 0x7E |
IRV (今はASCIIと同じ) |
# | $ | @ | [ | \ | ] | ^ | ` | { | | | } | 〜 |
JIS (規格表の字形) |
# | $ | @ | [ | ¥ | ] | ^ | ` | { | | | } | − |
NEC (PC-9800、EPSON PC) |
# | $ | @ | [ | ¥ | ] | ^ | (`) | { | | | |
} | 〜 |
なおチルダ「〜」とオーバーライン「 ̄」もこの問題と併せて、異なると思いこんでいる人がいますが、これは実際の見た目は違っていてもISO 646、X0201共に慣習的に同じ文字として扱っています。(最新のX0201:1997では、このことに言及するようになりました。) このように同一の文字なのに字形が微妙に異なっている事を、字形の揺れといいます。(チルダとオーバーラインは見た目は無茶苦茶大きいですが…)
一般人が意識する問題ではありませんが、通信などでJISコードが使用されるときのエスケープシーケンスに間違いや方言があり、問題となることもあります。
普段から日本ではUS-ASCIIまたはJIS X0201英数、JIS X0201カナ、JIS X0208と沢山の文字規格を併用しないと文書が書けません。日本人は4つのスクリプトを使いこなす文字的バイリンガル民族(英字と数字・平仮名・カタカナ・漢字)だといえるでしょう。
複数の文字規格を切り換える為の国際的手法がISO 2022で、JISコードのエスケープシーケンスはこの規格に準じた物です。しかしこれを開発者が正しく認識していなかったりすることもあります。
またNECが勝手に異なるエスケープシーケンスを使っていたり、EMCA(ISO 2022の符号を管理している団体)への申請中に、予想でJISの規格書を書いてしまったが為に間違って表記されている文献が存在するなんて事もあります(笑)
JISの 切り替え |
漢字の場合 | JIS7の場合 | |||
漢字の開始 (KI) |
ASCIIの開始 (KO) |
補助漢字の開始 | 1バイト カタカナ |
ASCIIの開始 | |
ISO 2022 正式 |
78JIS用 ESC $ @ 83JIS用 ESC $ B |
ESC ( B ESC ( J |
ESC $ ( D | SO (0x0E) ESC ( I |
SI (0x0F) ESC ( B ESC ( J |
NEC JIS (独自) |
ESC K | ESC H |
コメントは新JISを採用している処理系で見たときのものです。 |
追加された字 旧JIS時の字形(移動) JIS SJIS JIS SJIS 3646 8BC4 尭 → 7421 EA9F 堯 4B6A 968A 槙 → 7422 EAA0 槇 4D5A 9779 遥 → 7423 EAA1 遙 6076 E0F4 瑶 → 7424 EAA2 瑤
7425 EAA3 凜 ※凛(515B/997A)の異体字を追加 7426 EAA4 熙 ※煕(5F66/E086)の異体字を追加
第一水準 第二水準 3033 88B1 鯵 ←→ 724D E9CB 鰺 3229 89A7 鴬 ←→ 7274 E9F2 鶯 3342 8A61 蛎 ←→ 695A E579 蠣 3349 8A68 撹 ←→ 5978 9D98 攪 3376 8A96 竃 ←→ 635E E27D 竈 3443 8AC1 潅 ←→ 5E75 9FF3 灌 3452 8AD0 諌 ←→ 6B5D E67C 諫 375B 8C7A 頚 ←→ 7074 E8F2 頸 395C 8D7B 砿 ←→ 6268 E1E6 礦 3C49 8EC7 蕊 ←→ 6922 E541 蘂 4128 9147 賎 ←→ 6C4D E6CB 賤 445B 92D9 壷 ←→ 5464 9AE2 壺 4557 9376 砺 ←→ 626A E1E8 礪 456E 938E 梼 ←→ 5B6D 9E8D 檮 4573 9393 涛 ←→ 5E39 9FB7 濤 4676 93F4 迩 ←→ 6D6E E78E 邇 4768 9488 蝿 ←→ 6A24 E5A2 蠅 4930 954F 桧 ←→ 5B58 9E77 檜 4B79 9699 侭 ←→ 5056 98D4 儘 4C79 96F7 薮 ←→ 692E E54D 藪 4F36 9855 篭 ←→ 6446 E2C4 籠※字形変更のみの漢字は省略します(1983年改正では244文字、主観により数は前後)