1

Emacs と R 環境でこの奇妙なエンコーディングの問題が発生しました。漢字の表示はSys.setlocale("LC_ALL","zh_CN.utf-8");、入力のエコーを除いて、.Rprofile 設定ですべて問題ありません。

    > linkTexts[5]
          font 
    "使用帮助" 
    > functionNotExist()
    错误: 没有"functionNotExist"这个函数
    > fire <- "你好"
    > fire
    [1] "  "

ご覧のとおり、ベクトルに含まれる漢字linkTexts、中国語のエラー メッセージ、および入力された漢字はすべて完全に表示できますが、入力文字のエコーは空白のプレースホルダーとしてのみ表示されます。

sessionInfo()これは、Sys.setlocale("LC_ALL","zh_CN.utf-8");設定を考えると予想どおりです。

    > sessionInfo()
    R version 2.15.2 (2012-10-26)
    Platform: i386-apple-darwin9.8.0/i386 (32-bit)

    locale:
    [1] zh_CN.utf-8/zh_CN.utf-8/zh_CN.utf-8/C/zh_CN.utf-8/C

    attached base packages:
    [1] stats     graphics  grDevices utils     datasets  methods   base     

    other attached packages:
    [1] XML_3.96-1.1

    loaded via a namespace (and not attached):
    [1] compiler_2.15.2 tools_2.15.2   

また、.Emacs ファイルにはロケール設定がありません。

私には、これは Emacs エンコーディングの問題のようですが、修正方法がわかりません。アイデアや提案はありますか?ありがとう。

4

2 に答える 2

1

あなたの例は、すぐに使用できます。でemacsプロセスのデコード/エンコードを設定できますM-x set-buffer-process-coding-system。どのエンコーディングが機能するか (もしあれば) を把握したら、次の方法で変更を永続的にすることができます。

(add-hook 'ess-R-post-run-hook
          (lambda () (set-buffer-process-coding-system
                      'utf-8-unix 'utf-8-unix)))

utf-8-unix選択したエンコーディングに置き換えます。

上記が役立つとはあまり確信していません。あなたの例のLinkTextはうまく表示されますが、fireは表示されず、emacs/ESSの問題のようには見えません。

于 2013-04-26T08:49:20.117 に答える