匿名質問者

UbuntuのEmacsでHTMLファイルを作っているのですが、


例えば、
double matAvrDiagElements(int a[3][3]){
double b=0; /*変数bを初期化する。*/
int i;
というプログラムを1つ目のファイルに書いていて
同じ内容をそのまま別のHTMLファイルにコピーしたら、
double matAvrDiagElements(int a[3][3]){
double b=0; /*  b      */
int i;

このようになり、日本語表記の部分だけ消えるという現象に遭遇しました。
何が原因ですか?また、どうやったら解決できますか?
同じ内容の日本語をコピーできずに別のファイルに書き直すとなると、めんどくさくてしょうがないです。
どうか教えてください。UbuntuでEmacsを使って作成しています。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/11/25 19:05:03

回答1件)

匿名回答2号 No.1

何らかの原因で二つのファイルのエンコーディングに違いがあり、うまく貼り付けることができなかったのではないかと思います。

Emacsではファイルのエンコーディングはバッファの左下に表示されます。「-E:--」であれば日本語EUCでファイルは保存されています。「E」の部分が「J」であればJIS、「S」であればShift-JIS、「U」であればUTF-8です。二つのファイルのエンコーディングを確認してみてください。

もしエンコーディングが異なるようであれば、ファイルの保存に用いるエンコーディングを変更します。

保存に用いるエンコーディングを変更するには、[C-x RET f]を押下します。画面下にエンコーディングの入力を求めるプロンプトが表示されるので、例えばUTF-8で保存したければ「utf-8」と入力しリターンキーを押下します。Shift-JISであれば「sjis」と入力します。

保存用エンコーディングの設定が済んだら、ファイルを[C-x C-s]で保存します。

これでアクティブなバッファの内容が好みのエンコーディングで保存できました。

余談ですが、HTMLファイルに「<!-- -*- coding: utf-8 -*- -->」のような、表示されないコメントを挿入しておくと、Emacsは紫色の部分を認識し、HTMLファイルをそのコメントのエンコーディングに従って保存/表示するようになります。

興味があれば「Emacs エンコーディング」「Emacs エンコーディング指定プラグマ」で検索することをお薦めします。

  • 匿名回答1号
    匿名回答1号 2014/11/18 20:00:00
    よくわからんけど、もしかするとこれとか
    参考サイトのフォーラムとか参考になるかも?
    http://d.hatena.ne.jp/khiker/20080404/emacs_character_code

    参考にならなかったとしても、これらのように
    どういう条件下で問題が出るのか
    まずはその洗い出しから始めたほうがよさげ

    Emacs → Emacsへのコピー  ×(質問内容)
    Emacs → 他ソフトへのコピー ?(未確認)
    他ソフト → Emacsへのコピー ?(未確認)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません