なぜ?上場企業でも、『シフトJIS』を使い続けるのだろうか?
【楽天市場】Shopping is Entertainment! : インターネット最大級の通信販売、通販オンラインショッピングコミュニティ
全般的に新しい企業やIT企業はutf-8とhtml5の組み合わせが多かった。というより現代においてはそうしない理由は特にない。
それでもシフトJISやHTML4が幅を利かせているのは、変更して何かが起こったら怖いから、とか、検証に時間とお金をかけられない、ということなのだろう。
□今までのデファクトだったシフトJISはどうだろうか。シフトJISを使うと,(英文混じりの)日本語を表現する場合,そのデータ長はUTF-8/16/32に比べて短くなる。コンピュータを取り巻く通信環境は高速になり,ストレージは大容量化してきたとはいえ,データ長は短いに越したことはない。シフトJISでもデータ長は文字数に比例しないが,必ず英数字は1バイト,日本語文字は2バイトになる。Unicodeエンコーディングよりも良さそうだが,シフトJISの問題は表現できない文字が存在することだ。裏を返せば,「シフトJISで表現できない文字を使わない」ようにすれば良いのだが,それでは進歩がない。
https://tech.nikkeibp.co.jp/it/article/COLUMN/20070221/262658/
■各文字コードのメリットとデメリット
UTF-8 一択!
Shift_JIS
・メリット
- 消費バイト数が比較的少ない。
- 国内に限れば、だいたいどのガラケーでも読める。
・デメリット
- 亜種が多いので使いようによっては微妙に文字化けする。
- エンコードデータに制御文字を含む場合が多いので、それを想定してない環境(外国人が作ったプログラムなど)では誤作動したり文字化けしたりする。(いわゆるだめ文字問題)
- 文字種は少なくとも9000ぐらい(ASCII + JIS X 0201 + JIS X 0208 + α?)。亜種によりけり。
EUC-JP
・メリット
- 消費バイト数が比較的少ない。(Shift_JISよりは多くなる場合がある。)
- だめ文字問題がない。
・デメリット
- Shift_JISほどではないがやはり亜種問題がある。
- Windows, Macではブラウザで表示するだけならあまり問題はないが、デフォルトのテキストエディタが対応してないなどクライアント側での扱いに難があるかも。(TextEdit.appはきちんとメタデータがついてたら読めるらしいが。)
- 国内のガラケーはほぼ対応してないと考えて良いかと。ゲートウェイで変換してくれる場合もあるらしいですが。
- 文字種は少なくとも13000文字ぐらい(ASCII + JIS X 0201 + JIS X 0208 + JIS X 0212)。
※文字種の範囲が微妙に違うためShift_JISとEUC-JPの間で完全な相互変換はできない。さらに亜種問題もあってワケワカメ。
UTF-8
・メリット
- 文字範囲がめっちゃ広い。概念的にはどの国の文字も文字化けしない。利用してるフォントにその文字が入ってなければ化けるけど。
- だめ文字問題がない。
- バイト列として検索しても文字の途中にヒットする事がない。
- 亜種問題がない。UTF-16とかUTF-32は出自を考えると亜種と呼べなくもないがエンコードされたデータは似ても似つかないものになるため(というか全く違うエンコードなので)混同することがない。
- 最近なら(といってもここ10年くらいなら)だいたいどんなPC環境でもデフォルトで読める。
・デメリット
- EUC-JPよりはマシですが国内のガラケーは対応してない場合が多い。ゲートウェイで変換してくれる場合もあるらしいですが。
- 日本語は一文字につき3バイト使うので容量がShift_JIS、EUC-JPの場合の約1.5倍になる。(といってもhtml, css, js, プログラムソース等はASCII文字を多く含む為、全体ではそこまで増大しない。)
- エンコードデータの扱いに、Shift_JIS、EUC-JPと比べて計算機リソースを食うかも。
- 冗長なコードの問題がある。しかしそういうのはライブラリ側で正常なコードに自動的に置換したり例外を出したりするようになってるはず。