2012-01-23 11 views

答えて

5

.csファイルに通常のASCII範囲外の文字が含まれていない限り、ファイルの実際の内容に違いはありません。違いは、ファイルを再度開いたときにファイルを保存した文字エンコーディングをエディタが検出しようとしたかどうかです。

デフォルトでは、新しい.csファイルを保存すると、VSは現在のANSIコードページを使用して文字をエンコードします。 (デフォルトでは、適切なオプションでUTF-8を使用するように切り替えることができます)。代わりに、 "エンコーディングで保存..."を選択することができます。保存する特定の文字エンコーディングが要求されます。

内部的には、コードがUTF-16として扱われているのは、Windowsがネイティブの文字列形式で扱うものであるためです。しかし、ディスク上では、あなたが書いたC#コードのほとんどがおそらく1バイトに収まるので、UTF-16はあなたのソースファイルを2倍に膨らませるでしょう。したがって、ディスクに書き込むとき、VSはUTF-16文字を他の8ビット文字セットに変換する方法を定義する特定のコードページにデータを書き出します。

VSでファイルをリロードすると、そのファイルがどのエンコーディングに含まれているか把握しようとします。できなければ、現在のANSIコードページに戻ります。 (いくつかのオプションを使用してUTF-8にフォールバックすることができますが、別のエンコーディングに戻すことはありません)

"エンコーディングで"ファイルをリロードすると、ファイルを保存したときに、どのエンコーディングが使用されたかを尋ねます。この方法で、Studioが間違っている場合は修正できます。

デフォルト以外の言語からの.csファイルに外部言語文字列を埋め込んだ国際化プログラミングを行わない限り、明示的な「エンコード付き」保存を使用する必要はないでしょう。ロードする。しかし、あなたがそれらを必要とするなら、彼らはそこにいます。

+0

偉大な答え!ありがとう。 – ispiro

0

エンコードで開くと、カルチャや地域に適した任意の文字エンコードで保存できます。