web-dev-qa-db-ja.com

Notepad ++で保存した後にファイルエンコーディングが保持されない

PHPスクリプトの編集にNotepad ++を使用しています。

しかし、奇妙な問題を発見しました。エンコーディングをANSIからUTF-8 (without BOM)に変更し、保存、終了、再読み込みを行った後、エンコーディングをチェックすると、まだANSIです。

何が問題なのですか?それは過去にいつも私のために働いた。

3
Fuxi

これは予想される動作です。

ファイルが特定のエンコーディングで保存されている場合がありますが、Notepad ++で再度開くと、別のエンコーディングで検出されます。これは技術的な制限であり、異なるエンコーディングが使用されていても、結果のファイルが異ならない場合があるために発生します。これは、使用されているエンコーディングを示す特別なBOM(バイトオーダーマーク)なしでファイルが保存されている場合に最も顕著になります。

ANSIとUTF-8は最初の128文字(ASCII)を共有しているため、これらがすべて使用されているかどうかを区別できません。プレーンテキストファイルの場合、エンコーディングを示すメタデータがないため、Notepad ++(および他のエディター)が実行できるのは、ファイル内の文字/データを調べて推測することだけです。

  • ファイルにBOMがある場合、NP ++はそれを検出し、エンコーディングを認識します。
  • ファイルがHTMLまたはXMLの場合、エンコーディングはファイルの最初の行から読み取られます。
  • それ以外の場合、NP ++はUCS-2LE、UCS2-BE、およびANSIの間で推測を行います。 BOMなしでUTF-8でエンコードされたファイルと、高いASCII文字がたくさんあるANSIのファイルとを区別することはできません。

http://sourceforge.net/projects/notepad-plus/forums/forum/331754/topic/382272


理論的には、 PRacicotの回答 すべてのANSI/UTF-8ファイル(BOMなし)をUTF-8として開く必要があります。これは 同様のStack Overflowの質問への回答 でも推奨されます。これがうまくいかない場合は、何ができるかわかりません。私の場合、エンコーディングはステータスバーにANSI as UTF-8と表示されます。

8
Bob

この設定は、notepad ++の設定で変更することをお勧めします。

メニューの[設定]-> [設定]-> [新しいドキュメント/デフォルトディレクトリ]に移動します。吸うセクションのエンコーディングで、BOMなしのUTF-8をチェックし、開いているANSIファイルに適用するをチェックします。

[開いているANSIファイルに適用]をオンにすると、この設定は、notepad ++で現在開いているドキュメントにも適用されます。

画像を投稿するのに十分なポイントがまだないので、ここに画像をアップロードしたpostimageへのリンクがあります: http://postimage.org/image/4qza0bkv9/

幸運と幸せなプログラミング。

5
PRacicot

必ず Convert to ...を変更する代わりにEncode to ...オプション。
設定でこのオプションを変更して、すべての新しいファイルが選択したエンコーディングで作成されるようにすることもできます。

imuge

3
Apache