Windows programming (9) - 文字コード - 2002.April 1. Win系文字コード  プログラムを書く時、最初から用意されてる関数があればそれを使いたいと思う  のは人情でしょう。  では同じような機能を持つ関数が複数あれば?  wsprintf()とsprintf()とか。前者はWin32 APIで、後者はCの標準ライブラリの  関数ですね。  Win16の頃はWindows APIとCのランタイムを混ぜて使ってはならない。とかいう  話もあったのですが、Win32では混ぜても問題ないです。  これは*よかったよかった*でパチパチ。なのですが、も一つ。  文字コードの問題。ってのがあります。  Windows9xの場合、基本的にASCiiです。が、WindowsNT/2000/CEはUnicodeで  動いてます。  文字コード。というモノを意識してない人にはちんぷんかんぷんでしょうが、  Win32なコードを書く上では避けて通れません。  余りに基本的なことはすっ飛ばしますが、MS系OSは(日本では)SBCSとDBCS、それと  Unicodeを採用してます。  ってのはMSな用語なので、もうちょいと解説すると:  ASCii文字 英数文字のみ。と思えば良い。半角カナは不可。英語圏のソフトは ASCiiコードが00-7Fであることを利用してMSBを……。 あ、いや。説明すると長くなるのでここまで。  JIS文字コード メールするプログラムとか、漢字CP/M-80とかを相手にしないなら 多分(多分だよ)取りあえず忘れて良い。「漢字In」、「漢字Out」が 文字化けしたら、はいそれまでよ〜。というコード(異論・反論も あろうけど、余り真面目にフォローしません)  Shift-JIS SJISとか略される。「JIS」の名は入っているが、MSの独自コード。 JISではない。単なる一企業のコード。 Win95以降、PC-9801依存である「機種依存文字」が含まれたので、 その他OSのユーザに迷惑を掛けているきらいがなきにしもあらず。 最も普及していると言えるかもしれない日本語コードだが、 逆順な文字列検索をしようとすると、プログラマに牙を剥いたり する。 IBMの拡張漢字とかは含まれてる。が、Macや東芝の拡張文字は 無視されてる。 数の論理で少数派が読めない文章を書いても構わない。とか思う 傍若無人な人以外は、自分の書く文章に注意すべき。 多いのは、○付き数字。これはWindows系以外では先ず読めない んだよね。 #「(1)」って、Macで素直に読むと「(日)」だったりする いや、Macでもフォントを変えるとちゃんと読めたりするけどねぇ  EUC UNIX系で多用される文字コード。半角カナも規格的には使えるん だが、歴史的経緯(?)から、半角カナは邪悪な文字コードであると してこのコードのユーザからは忌避されることが多い。 個人的には、とってもおもしろい顔文字が使えないのが残念なんで、 半角カナも市民権を得て欲しいのだが……。  EBCDIC IBMの汎用大型マシン用の文字コード。プログラマでももう         扱ったことないんでは?(偏見?だったら御免なさい) いわゆる半角カナ使うならアルファベットの小文字が使えない。 とかいう文字体系(だった)。 数字やアルファベットが連続して割り付けられてなかったり したので、「ch - 'a'」がどーのこーのとか言うようなコードを 書くと思いっきり馬鹿にされたりした(笑)  UNICODE JavaとかWindows CE、NT、Visual Basicが採用している、文字体系。 従来のコードとは何の関係もなく決められている関係で、文字コード 変換には膨大なテーブルを用意しなきゃならんとか、節操もなく 雪だるまマークだのとか、お天気マークとか、を採用したもんで、 結局16bitでは足りなくなって悲惨なことになってるとか、あるけど。 その割に、異なる字体に同じコードとかって、おぃ!ってなことも あるしぃ。 ま「船頭多くして舟、山に登る」の好例ですね(T_T) ハートマークが公然と定義されている。という点だけ、私は評価 しますが、それ以外は糞喰らえ。です。  TRONコード ウルトラマイナーな文字も「超漢字」として市販されてたりします よね?学術的用途では最適。だとか……。いや、あたしは 日本の漢字だって読めないのはごまんとあるんでアレですが。 まぁね、ASCii文字フォントとして「クリンゴン文字」があったりは しますし、それはTRONコードにはない*はず*です。が、 「アーヴ文字」がTRONコードにはあったりするし。 ちなみに、私の知る限りUNICODEには「クリンゴン文字」も 「アーヴ文字」もありません。 #どっちも学術的意味は全くありませんけどね。でも雪だるまな  「文字」が正式採用されてるUNICODEがTRONコードを批判できる  訳はないですな  (無粋な補足:「クリンゴン文字」と「アーヴ文字」のどっちも   SF上の創作文字です) 上の定義は*細かいことを言い出すと……*ってな内容なんで、ぼーっと理解すりゃ 良いです。ISOなんとかとかUTFかんとかって、用語が相手から出始めたら、 「あー」とか「うー」とか言えばOK。 そこまで立ち入った処理が必要な人は絶対、ここなんざ読んでません。(でしょ?) (EOF)