人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

日本人の開発したCGIやフリーソフトは、なぜいつまでたってもEUCやShift-JISに固執し、Unicodeをベースに作成しないのでしょうか。
この質問は「島国根性プログラマー」への煽りです。
ファイル名が外国文字の圧縮ファイルを解凍できず、同じく画像ファイルを閲覧できず、日本語化CGIは外国語を扱えず……。いつまで島国根性を続けるんでしょうか?
Windowsも2000からUnicodeベースになっている現在、もし日本語を扱うのにUnicodeではまずい合理的な理由があれば滔々と述べていただければ幸いです。
ちなみに、はてなはグループでUTF-8化してくださったので非常に感謝してます。

●質問者: 松永英明@ことのは
●カテゴリ:コンピュータ
✍キーワード:CGI EUC JIS Unicode UTF-8
○ 状態 :終了
└ 回答数 : 8/8件

▽最新の回答へ

1 ● dev_zer0
●20ポイント

http://euc.jp/i18n/ucsnote.ja.html

従来の文字コードとUnicodeの対応に関する諸問題

その1、既存のシステムとの整合性の問題

全てのシステムをUnicodeで書き直すのは現実的ではない。

特にメールシステムは現在でもJISが標準だが、これはどうするのだろう?

http://www.linux.or.jp/JM/html/LDP_man-pages/man7/unicode.7.html

Manpage of UNICODE

その2、Unicodeと一口に言っても実装方式には

UCS-2、UCS-4、UTF-8、UTF-16などがあり、

現在はUTF-8が主流だが、将来どうなるか不明。今は様子見の段階である。

(最初にUCS-2を考えた奴はアホだと言っておこう)

その3、EUCやShift-JISはバイト数/2で文字数を算出できるがUTF-8は先頭からスキャンしないと文字数を算出できない。

JISコードとかと同じでUTF-8はバイト数=文字数ではない。

http://www.dmz.hitachi-sk.co.jp/Java/Tech/i18n/unicode.html

最後にMSもShift-JISと微妙に異なるCP932という規格を勝手につくってさらに文字コードを混乱させている。

個人的にはUnicodeは嫌いだ。

どうせ統一的に扱えないのならJISみたいにシフトコードを定義し、あとはコードのマッピングはそれぞれに任せた方がよいと私は考える。

◎質問者からの返答

一つ目、JISだけ対応のメーラーは中国人からのメールを受け取れません。日本語だけが世界で通用しているのなら正解ですが。

その2はやや合理的ですね。しかし、デファクトスタンダードという言葉もありますので、ネットではUTF-8対応すればいいのに。

その3、これは外国語を切り捨てる理由としては弱いかと。

最後、MSの新規格は論外。

個人的にはShift-JISもEUCも外国文字を混在させられないので「使いものにならない」という印象です。エディタはUnicodeベースのEmEditor以外、絶対に使う気になれません。

まあ好き嫌いは個人の問題なのでそれはそれでOKですが。


2 ● dokusha
●20ポイント

http://www.jsa.or.jp/

JSA 日本規格協会

もたもたしてたからじゃないですか?

というのは半分冗談で。

何時までも続くとは思っていなかったのでしょうが、データをバイト単位で扱う事になれていたからじゃないでしょうか?

バイト単位であつかって、特定ビットを監視するというようなコーディングになれるとShift_JIS であるとか EUC-JP は非常に扱いやすいコード体系になっているからだと思います。

メモリを「リニア」に考えた場合、何時までも1バイト単位で考える必要はなかったんでしょうから(そもそもバス幅なんてとっくの昔に拡張していたんですから)さっさと2バイト、4バイト単位で扱えれば良かったんでしょうけど。

これは狭い経験からですが。

Unicodeをベースにすると、コード内は”英文化する”ような気がします。つまり、ハングルやら中国語(簡体字?)を排除するというよりも、日本語も排除して ASCII に”寄せられて”結局静的データ領域は”上がスカスカ”になっているような気がするんですが、最近ではこんなメモリ的な無駄は無駄とも認識されず、それよりも怪しい挙動をしないようにってとか見てくればかりが求められているようで。ブツブツ(この続きは夜に居酒屋でやります)

◎質問者からの返答

ふーむ。


3 ● abunakunai
●20ポイント

http://www.debian.or.jp/~kubota/unicode-symbols-map2.html

やはり、圧倒的にコピーペーストでプログラムを作成し、

「基本」から理解してない方が多いのではないでしょうか。

みな、eucを推奨しているから…と特に深く考える人はいないのしょう。

utf-8は文字化けも無いはずなので個人的には使いやすいんですがねぇ。

普及していないのは、言語のサポートが完全でない点もあげられるでしょう。

Perl4の時代はencodeモジュールもなかったでしょうし、

現状流行りのPHPだとしてもmbstringがなければutf-8はほぼ使えない状態です。

また、日本語かなが3byteになって無駄に増えてしまうというのも躊躇される原因でしょう。

ハイフンや似た文字が複数存在してしまうのもちょっと困りますよね。

◎質問者からの返答

「みな、eucを推奨しているから」ってのは現状の説明において説得力ありますねえ


4 ● shampoohat
●5ポイント

http://www.ipsj.or.jp/members/Magazine/Jpn/3904/article014.h...

嫌いだからではないにせよ、Webのhtmlはunicodeなんて少なく、cgiもperlに依存する。あまり使いたいと思われていない様子ですよね。Webに関してはJavaならかなりすぐutfなりに対応できるものの、ブラウズする側はそれでいいのかってのがあるかと。

◎質問者からの返答

うちのサイトはほぼ全ページUTF-8(掲示板CGIもUTF-8に改造)で、今さらShift-JISやEUCには戻れないくらい必須なんですが。あと、ブログはトラックバックの文字化け問題があるのでUTF-8が極めて有利です。

ちなみに上記URLは本文が読めませんね。


5 ● parotako
●5ポイント

http://www.nttdocomo.co.jp/p_s/imode/make/tag/index.html

(上記は一例です)

CGIについては、単純にShift-JIS(のみ)に対応しているブラウザが多いからだと思います。

最近では、Unicodeに対応するブラウザも増えてきましたが、特にモバイル系のブラウザは対応が遅れている気がします。

あと、フリーソフトについては、通常は文字列を処理する関数が対応するコードでプログラムを組むと思いますので、その開発環境や動作環境に依存すると思います。

また、以前のソースを流用する場合、どうしても流用元の時代に使われたプログラムを最低限の修正で使おうとするために、コードの変更は優先順位が下がる可能性があります。

やる気(と時間)がある人は、直すかもしれませんが、やる気がない人は、そのままということです。

◎質問者からの返答

「Shift-JIS(のみ)に対応しているブラウザ」ってのは、実質的に、携帯か、異常に古いブラウザだけじゃないですか? シェアの9割を占めるIE6も5もShift-JISのみなんてことはありえませんよ。

開発環境がWinXPや2000だったら「動作環境」はUnicodeですよね。

まあ文字コードのことなんか考えてない開発者が多いというのはわかりますが、根拠のないポイント稼ぎはおやめください。


1-5件表示/8件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ