7

私が日本で Web サイトを開発していたときのことを覚えています。日本では、通貨には 3 つの異なる文字エンコーディングがあります。開発者は、ソース ファイルのエンコーディングを「強制」して、IDE で常に正しいエンコーディングで開くようにするトリックを持っていました。

彼らがしたことは、その特定の文字エンコーディングにのみ存在する日本語の文字を含むファイルの先頭にコメントを入れることでした- それは他のどの文字エンコーディングにもありませんでした! これは完璧に機能しました。

これを覚えているのは、英語圏ではありますが、似たような問題を抱えているからです。

ISO-8859-1 でなければならないファイルがいくつかありますが、エディター (Linux では Bluefish 1.0.7) で UTF-8 として開き続けます。これは通常、ポンド (£) 記号などを除いて問題になりません。ファイルを修正して ISO-8859-1 として再度保存することはできますが、エディターでは常にISO-8859-1 として開く必要があります。

それで、私が上で述べたように、これを行うためのキャラクターハックはありますか?または他の方法はありますか?

PS。Unicode の支持者/伝道者は、私を改宗させようとして時間を無駄にする必要はありません。私はすでに彼らの 1 人だからです! これは私が受け継いだガタガタの古いシステムです:-(

PPS。私は古いオナラであり、私のやり方で設定されているため、「別のエディターを使用してください」と言わないでください:-)

4

2 に答える 2

5

£通常、 ISO-8859-1 (つまり、1 バイトの 0xA3) としてエンコードされている場合、それは有効な UTF-8 バイト シーケンスの一部を形成しません。 UTF-8 シーケンスとして一緒に機能するような方法でビット セット文字。£(ファイルの先頭にa を単独で配置することで、これを防ぐことができます。)

したがって、エディターは UTF-8 などのファイルを開くべきではありません。もしそうなら、それは£完全に失われます。あなたのエディターがそれを行う場合は、「別のエディターを使用してください」—真剣に! 問題が、エディタがUTF-8 としてその他の非 ASCII 文字を含まないファイルを読み込んでいることである場合、それらに追加した新しい文字は後で UTF-8 として保存されます。ファイルの先頭に単独で追加すると、確かにそれが停止するはずです。£££

必ずしもできるとは限らないのは、すべての単一のトップビットセットバイトが有効な他の文字セットとは対照的に、エディターに ISO-8859-1 としてロードさせることです。そのエンコーディングに対して無効なバイト シーケンスを使用して除外できるのは、UTF-8 や Shift-JIS などのマルチバイト エンコーディングのみです。

Windows で通常起こることは、エディターがシステムの既定のコード ページ (Western マシンでは通常 1252) を使用してファイルをロードすることです。(実際には ISO-8859-1 とまったく同じではありませんが、ほぼ同じです。)

一部のエディターには、最初の行のコメントで使用するエンコーディングのヒントを与えることができる機能があります。vimの場合:

# vim: set fileencoding=iso-8859-1 :

構文は、エディター/構成によって異なります。しかし、それは通常かなり醜いです。ディレクトリごとにデフォルトのエンコーディングを変更する他のコントロールが存在する可能性がありますが、何を使用しているかはわかりません...

もちろん、長い目で見れば、ISO-8859-1 や UTF-8 以外のエンコーディングで保存されたファイルは消えてなくなる必要があります。:-)

于 2010-07-09T17:16:07.013 に答える
0

ファイルに文字ÿ(0xFF) を入れることができます。UTF8 では無効です。Mac 上の BBEdit は、それを ISO-8859-1 として正しく識別します。選択したエディターがどのように機能するかわかりません。

于 2010-07-09T17:18:59.087 に答える