質問

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

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

役に立ちましたか?

解決

ツールは、Windows上でコードページ1252のためにハードコーディングすることは、の非常にの可能性は低いです。多くの可能性が高いあなたのマシン上のデフォルトのコード・ページであることを起こるということです。 1252年は、西ヨーロッパとアメリカで使用されています。これは、[コントロールパネル]、[地域と言語のオプションで設定されています。彼らはそれのために別の名前を使用してきた、Win7の上では、管理タブにある、変更システムロケールます。

彼らは別のエンコードを選択した正当な理由がない限り、

はい、多くのツールは、デフォルトコードページを使用します。 BOM には、正当な理由です。顕著な例としては、メモ帳(あなたは、ANSI以外のものへのファイル+開くダイアログでエンコーディングを変更しない限り)とC / C ++コンパイラです。通常、デフォルトのコードページを使用するために必要な特別なことはありません。あなたはBOMを持っていないとき、テキストファイルの正しいコードページを推測することは正確に行うことは不可能です。 Googleは非常に面白い戦争の話は、「ブッシュは、事実を隠した」。

他のヒント

6 年前ですが、今でも通用します: すべてのソフトウェア開発者が絶対に、積極的に Unicode と文字セットについて知っておくべき絶対最低限の事項 (言い訳はできません!)

さて、あなたの質問について:はい、UTF-8 ファイルを停止させるツールがまだ存在します。しかし、ますます多くのツールが「それを実現」しています。独自のものを開発している場合は、すべての文字列が Unicode である Python 3 を調べてみるとよいでしょう。原則は、すべての入力を (必要に応じて) できるだけ早く Unicode に変換し、できるだけ遅くターゲット エンコーディングに再変換することです。特定のファイルのエンコーディングをうまく推測するツールキットが存在します (たとえば、 マーク・ピルグリムさんの シャルデ, 、の港 Mozilla のエンコーディング検出器)。これは、エンコーディングを指定しないファイルを操作する場合に便利です。

CP1252とUTF-8には、彼らはその上で異なるすべての文字<128で同じです。あなたは英語に固執し、離れた発音記号から滞在するのであれば、これらは同じになります。

Windowsツールのほとんどは、米国のWindows用の1252年にデフォルト設定されます、現在のユーザーの現在のコードページとして設定されているものを使用します。あなたはかなり簡単に別のコードページにそれを変更することができます。しかし、UTF-8は、Windowsで利用可能なコードページの中の選択肢の一つではありません。 (私はそれがいたことを望みます)。

Windowsで一部のユーティリティは、 UTF-8バイトオーダーマークを理解しますファイルの先頭に。残念ながら、私は、これはそれをしようとする以外に動作するかどうかを判断する方法がわからない。

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

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

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

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

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

また、さらなる国際化に興味がある場合は、私のサイトをご覧ください。 blog.i18n.ro

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top