Windowsアプリケーションを非Unicodeで開発するな


はじめに

9割型主観のオ○ニー記事です。


ユーザのことを考えて

あなたが作ったアプリケーションを使用するのはきっと様々な人種の人達です。
仮に、日本人向けのアプリケーションだったとしても、日本語を勉強している外国人や海外から日本人向けのアプリケーションを使用している日本人だって少なからず存在すると思います。

WindowsアプリケーションにはUnicodeアプリケーションというのが存在しており、これは様々な言語環境で(フォントが対応していれば)文字化けなく表示可能です。

逆に非Unicodeアプリケーションはユーザの言語環境の影響を受けてしまいます。
例えば中国製の非Unicodeアプリケーションの言語は大抵中国語(繁体)か中国語(簡体)になっています。
日本語版Windowsでそのまま起動すると文字化けしてしまいます。
なぜならば、日本語版Windowsの非Unicodeアプリケーションの言語は日本語だからです。

ならば「非Unicodeアプリケーションの言語を一旦変更してしまえばいい」と思ってしまうかもしれませんが、設定変更後にシステムの再起動が必須になってしまいます。

回避法の1つとしてAppLocaleというアプリケーションを使用すれば再起動せずに済みますが、やはり手間です。
しかもWindows Vista移行はUACが導入されているのでインストール時に少し面倒です。

マルチバイト文字セットなアプリケーションからUnicodeなアプリケーションに移行させるのもそこまで無謀な話ではないと思いますし、移行できるアプリケーションは移行すべきだと思います。

最後に

非Unicodeアプリケーションは開発するべきでないです。
AppLocaleはレガシーなアプリケーションを一時的に使用可能にするものです。

ちなみに私は日本語版Windowsを使用していますが、非Unicode アプリケーションの言語が en-US になっているため、非Unicodeな日本語アプリは大抵文字化けします。