- 218 名前:デフォルトの名無しさん mailto:sage [2011/06/28(火) 10:29:58.08 ]
- 201です。
まず訂正。 ×バカなアメ公 ○バカなイタ公 クソコードを投稿(正確にはsvnリポジトリーにコミット)してたのは、イタリア人でした。 でもコードを管理してるコミュニティの親分はアメリカ人で、そいつのチェックでOKが出た上で投稿されたんです。 コードというのは、javaで書かれたプログラムコードのことで、テキストのエンコードのことではありません。 話が長くなるのでアレですが・・・ javaでは内部的に文字列をユニコードで処理しています。1文字は16ビットです。 Windowsも皆さんご存知の通り、内部的に文字列をユニコードで処理しています。1文字16ビットです。 Win32APIの末尾に w が付くやつがそうですね。 つまり、javaで何も考えずにフツーにプログラミングすれば、アメ公が作ってもイタ公が作っても 自動的に日本語対応になるんです。 あとは画面に表示されるメッセージを言語別に作成して、利用者の言語にあわせて切り替える仕組み にしてやれば、マルチリンガルなアプリケーションの一丁あがり!ってワケです。 javaにはもともと、そういう仕組みが用意されてるので簡単です。 ところが、件のバカなイタ公は、文字列を一旦 UTF-8 にエンコードしてから表示しようとするんです。 もちろん文字化けします。バカなイタ公はなぜ文字化けするのか理解できないので 今度はそのUTF-8エンコードされた文字を、javaからWin32APIのWriteConsoleWに渡そうとします。 もちろん文字化けします。バカなイタ公はなぜ文字化けするのか理解できないので 今度はコンソールのコードページを無理やりUTF-8に変更するAPIを使いドツボにハマっています。 何もしなくていい、ただ System.out.println()関数でフツーに表示すればいい、ってのが理解できんのです。 アプリケーションをユニコード対応して国際化したい一心で一生懸命がんばってくれてるキモチはアリガタイwのですがw ユニコードとUTF-8の違いが理解できてないため、まったくトンチンカンなプログラムコードを書いて投稿します。 このイタ公を何とかして退治したいです。イタ公の愚行をやめさせるナイスな文章を教えてください。 コミュニティは英語以外禁止なので英語で構いません。
|

|