ミケネコ研究所 / 文字コードの部屋 / 怒られる例

文字コードの使い分けが下手で、怒られる例

半角カナが入ってる!シフト JISでメールを送った! こういう行為は、最悪の烙印を押されたりすることがありますが、半角カナの何がいけないのでしょう?シフト JISのどこがまずいのでしょう?


なにがマズいのか?問題点の列挙

なんとなくマズイ、みんなが言っているからマズイ?ではなく、もうちょっと深く掘り下げてみてみました。

思想的なモンダイ(1): 同じ文字が、重複して登録されているからマズイ

同じアルファベット、同じ数字、同じカタカナなのに、半角と全角の幅を変えたいがために、二重に登録されています。これは、文字コードの設計から言って、格好が悪いことです。

数字とアルファベットは半角で123, ABC。カタカナは全角でアイウエオと統一するのがいいようです。しかし、これでうるさく言われることは少ないですね。私も平気で全角アルファベットを使います。(さすがに、このページを書くにあたっては、注意していますが・・・どっかにまぎれこんでいるかもしれません)

技術的モンダイ-(1): コードの判別が難しくなるからマズイ

前述したように、EUCの半角カナと、シフト JISの漢字を、(形態素解析などを用いずに)区別する方法はありません。ですので、半角カナの割合が異常に多いEUC文章は、SJISと誤認するかもしれません。

技術的モンダイ-(2): 7bitの情報しか扱えない転送経路でマズイ

電子メール(および、ネットニュース)では、情報を 7bit で転送するような環境が残っています。8bit 目に情報が入っていた場合、それを保持するか切り捨てるかはサーバの自由に任されています。もし、運悪く 8 bit 目を切り落とすサーバが途中にあると、8bit文字 が「化け」の原因となります。

技術的モンダイ-(3): 私のソフトは対応していないからマズイ

最近できたばかりの規格なら、普及するまでに時間がかかります。

上のモンダイに、ひっかかりやすい例。怒られやすい例

凶悪度 (単なる私の主観です)

1. 半角カナ入りの Web ページ

凶悪度:☆

2大ブラウザは、半角カナ混じりのページを問題なく表示でき、技術的な問題は無いといえるでしょう。

あと、心配なのは、「思想的なモンダイ(1): 同じ文字が、重複して登録されている」です。半角カナのイメージは相当に悪く、半角カナを見ただけで「サイテーなページ」だと判断する人が多いようです。しかし、それならば彼は、全角アルファベットと半角アルファベットの混在に対しても、文句をつけるのでしょうか?あまり、そういう例は聞きません。

結論として、違反はしていないものの、やはり半角カナが思想的な問題を抱えている事実に変わりは無いので、「使用は好ましく無い」といったところでしょうか。(この辺りの議論は、とても深いです。)

2. 半角カナ入りの CGI掲示板の書きこみ

凶悪度:☆☆☆

この例は、上に加え、CGIプログラムが半角カナを正しく処理できるか、という技術的な問題が加わります。

名前(またはハンドル、ニックネーム)のボックスに、半角カナを混ぜるのは、凶悪ですね。短い文字列なのに、判読が非常に難しくなります。

メッセージ中に、ちょっとだけ半角カナを混ぜる行為はどうでしょうか。投稿確認があるCGIでいくつか試してみたところ、ほとんど問題は無いようです。親切な(そして、ややおせっかいな)コード変換フィルタでは、半角カナをわざわざ全角カナに変換してくれます。

3. 電子メールの本文を、SJIS コード で書く

凶悪度:☆☆☆☆☆

電子メール(ネットニュースも)は、7bit系で、情報を通信するようになっています。ですから、8bitが常に0であるJIS コードで本文を書いても、転送には何ら問題はありません。相手のメーラーが、本文のJIS コードを展開できるのであれば、本文が日本語でメールが送れます。

シフト JISでメールを送るのはどうでしょうか?これらは、8bitをばりばり使用するので、伝送経路によってはまずいことが起こるかもしれません。相手がSJIS対応のメーラーだとも限りません。

4. 電子メールの本文中に、半角カナを混ぜる

凶悪度:☆☆☆☆

さて、(テキストプレーンな)メールには、JIS コードしか選択の余地がないことがわかりました。

では、JISの半角カナを混ぜるのはどうでしょうか? といっても、JISに半角カナは定義されていないので、お互いの合意の上にいくつかの方法が編み出されました。7bit半角カナと、8bit半角カナです。8bitは論外ですねえ。。。7bit半角カナならいいでしょうか。メーラさえ対応していれば、問題はなさそうです。

いずれにせよ、あえて半角カナを含める必要性は、思い当たりません。

5. 電子メールの Subject: を、日本語で書く

凶悪度:☆☆

Subject: 行などは、RFC822でその記述が指示されています。生のJIS コードを混ぜると、RFC822 と照らし合わせると問題が生じてきます(RFC822をどう違反しているのかは、まだ未確認です)。生JISをまぜて、題名が「$B$($D$A.....」みたいなメールをたまに見かけるでしょう。

ならば、RFC822 の形式に沿うような文字に変換してやればいい・・・というわけで、MIMEエンコーディングを施すという方法があります。これは、日本語を、メールヘッダー内で使えるアルファベットだけに変換してしまいます。MIMEに対応したメーラーならこれを正しく展開し、日本語Subject: が読めるでしょう。現在となっては、日本語メーラをうたっていて、MIMEに対応していないのは中途半端な作りだと言えます。

5. 電子メールの From: を、日本語で書く

凶悪度:☆☆

メールの問題ばかり、しつこいですね(-_-; すいません。

From: を日本語で書くのは、Subject: を日本語で書くのに比べ、さらに問題が増します。

From: 行では、次の3通りが許されます。(RFC 1036)

ここに生JISを入れると、エスケープシーケンスの「(」という文字が入ってしまい、正しく処理されないことがあります。MIMEエンコーディングされた日本語なら、たいていのメーラは正しく処理します。(補足:RFC1036 は、「=」記号もふさわしくないと言っています。)


文字コードの部屋 http://mikeneko.creator.club.ne.jp/~lab/kcode/
お問い合わせ <lab@mikeneko.ne.jp>