No. 585/622 Index Prev Next
Path: titcca!ccut!wnoc-tyo-news!scslwide!wsgw!wsserva!sakamoto
From: sakamoto@sm.sony.co.jp (Tomohiko Sakamoto)
Newsgroups: fj.kanji
Subject: Re: Shift-JIS vs EUC
Message-ID: < 43004@wsserva.sm.sony.co.jp> 
Date: 9 Jun 90 16:09:37 GMT
References: < 43003@wsserva.sm.sony.co.jp> 
Sender: news@sm.sony.co.jp
Distribution: fj
Lines: 70

再びソニーの坂本です。
	(うそ、つけ。何度目だと思ってんだ! という声が聞こえてきますが)

In article < 43003@wsserva.sm.sony.co.jp> ,
	sakamoto@sm.sony.co.jp (Tomohiko Sakamoto) says:
>  以上、ファイルコードとして見てみると、やはり、後から決まっただけあって
>  日本語 EUC に分があるようです。そして、国際化など今後の拡張性まで考える
>  と EUC に軍配が上がってしまいます。

と書いたので、「EUC の勝ち」と判断された方がいるかも知れませんが、
「ファイルコードとして見てみると」という条件付きだということをお忘れなく。

処理コードについては、別のところで触れましたが、EUC には問題点があるでし
ょう。

さて、プログラマから見ると、シフトJIS は割と良く理解されていてコーディン
グしやすい面もあるのです。テキスト処理では、1バイトコードか2バイトコー
ドか、だけを判断すれば済むからです。
よく使われるのが ctype マクロの iskanji() で、これ一つで何とかやっている
のが実情です。
コードのバイト数と文字の幅は別問題だという意見が出されましたが、現実問題
として、端末やプリンタで固定ポイントサイズで固定ピッチを対象にしたコマン
ドやアプリケーションは、たくさん存在するわけです。この点でもシフトJIS は
有利です。

余談ですが、プロポーショナルかつ複数のフォントが扱えるのが自慢の
Macintosh で、日本語コードとしてシフトJIS が使われているのは面白いですね。
やはり、パソコンというイメージなんでしょうか?
Mac にも UNIX があるようですが、どうするつもりかな?

話を元に戻します。
漢字コードの2バイト目という点で、シフトJIS は、UNIX や C と相性が悪い、
ということを述べました。「\」に特別な意味があるテキストに対しては、プロ
グラムの方でも特別は処理が必要だということです。

一つの逃げ方は、シフトJIS でも、プログラムの内部処理に処理コードを使うと
いうことです。もともとファイルコードが、1バイトコードと2バイトコードだ
けから出来ていますから、unsigned short の変数を用意し、1バイトコードの
頭に 0x00 を付ければ済みます。

これに対して、日本語 EUC のプログラミングはどうでしょう。
ちょっと考えると、SS2(0x8e) や SS3(0x8f) を見るやっかいなコーディングに
なるかも知れません。
ANSI C では、mblen() や mbtowc() などというライブラリ関数を用意していま
すから、これを使ってプログラミングすることになるになるわけです。
今後、EUC の処理コードを扱うライブラリも整備されてくることでしょうから、
まっ、これから、ということですね。アプリケーションプログラマの皆さん、
頑張ってください。

また、話が脱線しますが、日本語 EUC って、UJIS とか言って Σ のコードでも
あるんですよね。でもって、Σワークステーションは、パソコンのソフト開発に
も使うんでしょう。うまくいくのかなあ。
Σ そのものが、うまくいってないみたいだから、気にしなくていいのか。

閑話休題。
EUC のプログラミングに戻りますが、nemacs にしても less にしてもそうです
が、ASCII とコードセット1の漢字にしか対応していないソフトって多いです
よね。これなら、シフトJIS と同じで、iskanji(c) で済んでしまいます。

nemacs や less のように画面表示に関係するものは別ですが、そうでなければ、
iskanji(c) の代わりに if (c >= 0x80) とか if (c &  0x80) で2バイトコード
の判別をすればコードセット2の片仮名も処理できてしまいます。
一方では、EUC の ISO 規格準拠を謳いながら、実はプログラミングでサボって
いることがあるようです。

やっぱり、ちゃんとした EUC プログラミングはつらいのかな。

Next
Continue