3

すべてのツールキットでUTF-8を使用したいのですが、Windows上の一部のツールがCP1252(Windows固有のようです)を使用しているようです。これにより、互換性のない出力が作成されますか?互換性がある場合は、どのコードポイントで作成されますか?もしそうなら、私はそれについて何かすることができますか?

(私は問題を完全には理解していないので、これらのエンコーディングに関する基本的な教育に感謝します)。

4

5 に答える 5

6

6歳でまだ関連性があります:絶対最小すべてのソフトウェア開発者は絶対に、積極的にUnicodeと文字セットについて知っている必要があります(言い訳はありません!)

さて、あなたの質問について:はい、UTF-8ファイルを詰まらせるツールはまだあります。しかし、ますます多くのツールが「それを手に入れている」。独自のものを開発している場合は、すべての文字列がUnicodeであるPython3を調べることをお勧めします。哲学は、すべての入力を(必要に応じて)できるだけ早くUnicodeに変換し、それらをできるだけ遅くターゲットエンコーディングに再変換することです。特定のファイルのエンコーディングを推測するのに適したツールキットがあります(たとえば、Mozillaのエンコーディング検出器のポートであるMark Pilgrimchardet)。これは、エンコーディングを指定していないファイルで作業している場合に便利です。

于 2009-12-21T22:18:42.020 に答える
6

Windowsでコードページ1252のツールをハードコーディングすることはほとんどありません。おそらく、それがマシンのデフォルトのコードページである可能性があります。1252は、西ヨーロッパと南北アメリカで使用されています。これは、コントロールパネル、地域および言語オプションで構成されます。彼らはそれに対して異なる名前を使用してきました。Win7では、[管理]タブの[システムロケールの変更]にあります。

はい。別のエンコーディングを選択する正当な理由がない限り、多くのツールはデフォルトのコードページを使用します。 BOMはそのような正当な理由です。注目すべき例は、メモ帳([ファイル+開く]ダイアログのエンコーディングをAnsi以外のものに変更しない限り)およびC /C++コンパイラです。通常、デフォルトのコードページを使用するために必要な特別なことは何もありません。BOMがない場合に、テキストファイルの正しいコードページを推測することは、正確に行うことは不可能です。グーグルは非常に面白い戦争物語のために「事実を隠した」。

于 2009-12-21T22:34:33.427 に答える
5

CP1252とUTF-8は、128未満のすべての文字で同じです。それより上では異なります。したがって、英語に固執し、発音区別符号を避ければ、これらは同じになります。

ほとんどのWindowsツールは、現在のユーザーの現在のコードページとして設定されているものを使用します。これは、米国のWindowsではデフォルトで1252になります。これを別のコードページに簡単に変更できます。ただし、UTF-8はWindowsで使用可能なコードページオプションの1つではありません。(そうだったらいいのに)。

于 2009-12-21T21:45:43.427 に答える
2

Windowsの一部のユーティリティは、ファイルの先頭にあるUTF-8バイトオーダーマークを理解します。残念ながら、試してみる以外に、これが機能するかどうかを判断する方法がわかりません。

于 2009-12-21T21:55:28.597 に答える
1

UTF-8はWindowsでサポートされていますが、現在のコードページとしてはサポートされていません。UTF-8を使用して変換することはできますが、現在のコードページとして設定することはできません。

まず、コードページを設定して時間を無駄にしないでください。このアプローチでは、Sisyphusの神話を思い出します。コードページを使用して問題を実際に解決することはできず、Unicodeを使用する必要があります。

唯一の実際の解決策は、アプリケーションをUnicodeとしてビルドして、UTF-16を使用し、入出力操作でUTF-8との間で変換することです。fopenはUTF-8の読み取りまたは書き込みをサポートしているため、これは非常に簡単に実行できます。

UTF-8ファイルでの他のWindowsツールの使用に関しては、ツールがASCIIで動作できる場合、UTF-8で動作するため(たとえUnicode文字を区別できない場合でも)、注意する必要はありません。少なくとも、ファイルをロード/解析できるようになります)。

ところで、使用しているプログラミング言語と、使用を検討しているWindowsツールを指定するのを忘れていました。

また、より多くの国際化に興味がある場合は、私のblog.i18n.roにアクセスしてください。

于 2009-12-23T10:05:20.570 に答える