web-dev-qa-db-ja.com

Windowsアプリケーションの「ロケール」をUTF-8に設定することは可能ですか?

テキスト表示の問題を解決するために、非Unicodeアプリケーションのコードページを変更できるAppLocaleというアプリケーションがあることはわかっています。

しかし、右側の表示コードページがUTF-8であるプログラムがあります。これは、テキストはUTF-8として表示される必要がありますですが、代わりにWindows 表示します)ネイティブコードページとしてそしてテキストを読めなくします。ほぼすべての国と地域がありますが、UTF-8がないため、おかしいようです。プログラマーは英語を使用し、英語以外のテキスト表示の問題のテストを無視する可能性があるため、これはバグだと思います。プロデューサーが直してくれるとは思わないので、自分で直したいです。

AppLocaleなどのソフトウェアを使用して非Unicode出力をUTF-8として設定することは可能ですか?デフォルトの非Unicode出力はネイティブコードページですか?ネイティブコードページをUTF-8に設定するにはどうすればよいですか?

2
Komeiji Kuroko

以前は不可能だったのは

Microsoftは、UTF-8ロケールが一部の機能を壊す可能性があると主張しました(考えられる例は_mbsrev)マルチバイトエンコーディングが1文字あたり2バイト以下を使用することを想定して記述されているため、これまで、GB 18030(cp54936)やUTF-8などのバイト数の多いコードページをロケールとして設定できませんでした。

https://en.wikipedia.org/wiki/Unicode_in_Microsoft_Windows#UTF-8

ただし、ロケールコードページをUTFに設定するためのWindows 10 Insider Build 17035以降、 "ベータ版:世界中の言語サポートにUnicode UTF-8を使用する"チェックボックスがあります- 8

Beta: Use Unicode UTF-8 for worldwide language support

も参照してください

とはいえ、この時点ではまだサポートにバグがあります

1
phuclv

私がMicrosoftについて読んだことから ウィキペディアのAppLocaleツール 、ツールはコードページをUTF-8に変更できません。 非Unicodeアプリケーションでのみ機能しますが、UTF-8はUnicode標準の一部です。

内部的には、非ASCII文字のUnicode処理は非Unicodeの処理とは大きく異なるため、非Unicodeコードページ間で変更することはできますが(これはAppLocaleが行うことです)、Unicodeと非Unicodeの間で変更することはできません。そのプロデューサーによって作成されたアプリケーションの変更なしのUnicode。

0
miroxlav