emacs 在shell下中文乱码解决方案

Posted 灬鬼谷灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了emacs 在shell下中文乱码解决方案相关的知识,希望对你有一定的参考价值。

;;;; 设置编辑环境
;; 设置为中文简体语言环境
(set-language-environment 'Chinese-GB)
;; 设置emacs 使用 utf-8
(setq locale-coding-system 'utf-8)
;; 设置键盘输入时的字符编码
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
;; 文件默认保存为 utf-8
(set-buffer-file-coding-system 'utf-8)
(set-default buffer-file-coding-system 'utf8)
(set-default-coding-systems 'utf-8)
;; 解决粘贴中文出现乱码的问题
(set-clipboard-coding-system 'utf-8)
;; 终端中文乱码
(set-terminal-coding-system 'utf-8)
(modify-coding-system-alist 'process "*" 'utf-8)
(setq default-process-coding-system '(utf-8 . utf-8))
;; 解决文件目录的中文名乱码
(setq-default pathname-coding-system 'utf-8)
(set-file-name-coding-system 'utf-8)
;; 解决 Shell Mode(cmd) 下中文乱码问题

(defun change-shell-mode-coding ()

  (progn
    (set-terminal-coding-system 'gbk)
    (set-keyboard-coding-system 'gbk)
    (set-selection-coding-system 'gbk)
    (set-buffer-file-coding-system 'gbk)
    (set-file-name-coding-system 'gbk)
    (modify-coding-system-alist 'process "*" 'gbk)
    (set-buffer-process-coding-system 'gbk 'gbk)

    (set-file-name-coding-system 'gbk)))


转自:Windows下emacs shell-mode中文乱码解决方案


直接在缓冲区修改编码:

1、打开文件出现乱码时,可以尝试修改字符的编码:
M-x revert-buffer-with-coding-system RET(回车)
然后输入对应编码,如:utf-8 或者 chinese-gbk

2、在保存的时候还可以指定文件的保存编码:
M-x set-buffer-file-coding-system

3、查看Emacs编码格式
M-x describe-coding-system

以上是关于emacs 在shell下中文乱码解决方案的主要内容,如果未能解决你的问题,请参考以下文章

linux下中文文件名乱码解决

如何在 shell 外使用 sudo 运行 Emacs 命令? [复制]

使用 emacs shell 时清除 shell 的命令

Emacs shell 无法识别 python 命令

emacs 去除 shell 中的所有 ansi 颜色代码

Linux环境下shell输出的中文文件windows打开乱码问题处理