テキストファイルのエンコーディングを永続的に変更するにはどうすればよいですか?

私はiso-8859-1-unixとしてエンコードされたhtmlファイルと、utf-8-unixでエンコードされたいくつかのhtmlファイルを持っています。私が望むのは、すべてをutf-8-unixでエンコードすることです。 私はすでに試してみた(私は彼らが実際には同じコマンドだと思う):

C-x C-m f utf-8-unix
C-x RET f utf-8-unix

モデルラインは1からUに変わりますが、ファイルを閉じて再び開くと、モデルラインは再び1を表示します。私が何をしようとしても変更を永久にすることはできないと思われます。理由はわかりません。

以下の提案に従って、私はこのコンテンツを使って新しいファイルを作成しました


C-h v buffer-file-coding-system returns this:

Its value is utf-8-unix
Local in buffer new.htm; global value is the same.

だから大丈夫だ。私は保存し、バッファをkillし、ファイルを再度開き、 C-h v buffer-file-coding-system がこれを返します:

Its value is undecided-unix
Local in buffer new.htm; global value is utf-8-unix

私は本当に混乱しています。

編集:これを明確にする手助けをしてくれてありがとう!

5
追加された 編集された
ビュー: 4
エンコーディングを変更した後でファイルを保存していますか?
追加された 著者 Louis Salin,
コードを永続的に設定する標準的な方法は、ファイルローカル変数として追加するMx add-file-local-variable RETコーディングRET utf-8 RET 、保存すると完了です。しかし、Emacsがiso-8859-1コーディングでオープンしている理由を理解するために、ファイルの内容を知っておく必要があります。
追加された 著者 Ryan Cox,
C-h v RET をコーディングするには、そのバッファーでこのコマンドを発行する必要があります。 Emacsにファイルが特定のコーディングの中にあると考える特別な文字があるかもしれません。あるいは、initファイルに何かがあるかもしれません。
追加された 著者 Ryan Cox,
申し訳ありませんが、私の誤りは、 buffer-file-coding-system 変数を参照してください。
追加された 著者 Ryan Cox,
あなたが質問に与えた例は、ASCII文字だけを含んでいます。したがって、UTF-8エンコーディングとLatin-1エンコーディングは同じになります。特に、ファイルを開くときにemacsがエンコーディングを区別する方法はありません。とにかく、HTMLファイルの <head> セクションに <meta charset = 'utf-8'> が含まれている場合、html-modeはあなたはファイルを開きます。この場合、ファイルローカル変数を使用する必要はありません。
追加された 著者 AttackingHobo,
はい、それは私が言っていることです。
追加された 著者 AttackingHobo,
関数 prefer-coding-system は助けになるかもしれませんが、これはファイル特有ではなくグローバルな設定です。
追加された 著者 user1126070,
@JordonBiondoはい私はある。
追加された 著者 Barnabas Nagy,
@giordanoファイルのローカル変数の現在の値をチェックする方法は?ファイルの内容は何も特別なものではなく、ちょっとした標準HTMLです。
追加された 著者 Barnabas Nagy,
@giordano奇妙。 コーディングカテゴリ - *coding-system - * の中から補完を選択するように求められたら、などですが、 coding という名前の変数があるようには見えません。
追加された 著者 Barnabas Nagy,
@ HaraldHanche-Olsen私は見る。したがって、ファイルにASCII文字しか含まれていない場合は、エンコードをlatin-1、utf8に設定するか未定のままにしておくと違いはありません。 meta charset に書いたものはファイルのエンコードになりますか?
追加された 著者 Barnabas Nagy,

答えはありません

0