Windows 7 で UTF-8 を標準としてグローバルに使用するように設定する方法はありますか?
すべてのテキスト エディターで UTF-8 を使用するように設定するのは非常に面倒です。
答え1
簡単に答えるといいえ、それは不可能です。
詳しく説明すると、Windows 7 には、1) グローバル デフォルトを設定して、2) リストしたすべてのアプリケーションがそれに従うことができるグローバル エンコード オプションは存在しないと思います。
また、ここで解決しようとしている問題は何でしょうか?
データを表現するために内部的に Unicode を使用するかどうかを選択するのはアプリケーション次第です。ユニコードの使用は推奨されているがただし、すべてのアプリケーションが実際に内部的にそれをサポートしているかどうかはわからない場合があります。
あなたができるただし、リストされている各アプリケーションのデフォルトの文字エンコーディングを変更します。
- Eclipseの場合、新規ファイルのデフォルトのエンコーディングは以下から設定できます。Windows > 設定 > 全般 > コンテンツ タイプ(見るEclipseコミュニティフォームに投稿する)
- Notepad++の場合は、設定 > 環境設定 > 新規ドキュメント/デフォルト/ディレクトリエンコードをUTF-8
- Thunderbirdに関しては、すでにデフォルトのエンコードとしてUTF-8を使用していると思いますか?(文字エンコードに関する注意事項)
- OpenOffice(およびLibreOffice)の場合、OpenOfficeで保存される文書はXMLに基づいており、そのXMLファイル(およびUTF-8すでにデフォルトになっています)
- UTF-8 の観点から見ると、PowerShell は扱いにくいです。デフォルトのエンコードは です
UTF-16LE
。
答え2
これは主に、WindowsがUTF-8用のANSIコードページを持っているにもかかわらず、システムのANSIコードページとしてUTF-8を許可しないために不可能です。コードページ 65001これにはいくつかの理由があるようです:
- Unicode が新しく登場したとき、Microsoft は UCS-2 が Unicode をサポートする最善の方法であると判断しました。当時の Unicode は 16 ビットでした。
- Windowsには、サポートされている言語ごとに1つのANSIコードページがあります。Unix や Linux とは異なり、言語とエンコーディングを個別に設定できます。
- コードページ65001はどこでも使えるわけではありません。特に、Windowsのマルチバイトサポートの一部ではマルチバイト文字に1バイトまたは2バイトが必要であると想定されていますが、UTF-8では1バイトから4バイトが必要です。
WriteFile()
API例えば、コードページ65001では誤った結果が返され、それがそれに依存するすべてのライブラリコードに反映されます。write()
。
マイクロソフトで国際化に携わった故マイケル・カプランはブログを書いていた。「すべてを整理する」、関連トピックに関する投稿がいくつかありました。私は当時、これらの懸念のいくつかについて彼に直接メールを送りました。