Ниже приведены shell-command-on-region
документы
To specify a coding system for converting non-ASCII characters
in the input and output to the shell command, use C-x RET c
before this command. By default, the input (from the current buffer)
is encoded using coding-system specified by `process-coding-system-alist',
falling back to `default-process-coding-system' if no match for COMMAND
is found in `process-coding-system-alist'.
Во время выполнения он сначала ищет систему кодирования с process-coding-system-alist
, если он равен нулю, то выглядит с default-process-coding-system
.
Если вы хотите изменить кодировку, вы можете добавить опцию конвертации в process-coding-system-alist
, содержание которой приведено ниже.
Value: (("\\.dz\\'" no-conversion . no-conversion)
...
("\\.elc\\'" . utf-8-emacs)
("\\.utf\\(-8\\)?\\'" . utf-8)
("\\.xml\\'" . xml-find-file-coding-system)
...
("" undecided))
Или, если вы не установили process-coding-system-alist
, это ноль, вы можете назначить опцию кодирования для default-process-coding-system
,
например:
(setq default-process-coding-system '(utf-8 . utf-8))
(Если вход кодируется как utf-8
, то выход кодируется как utf-8
)
Или
(setq default-process-coding-system '(undecided-unix . iso-latin-1-unix))
Я также написал пост об этом, если вам нужны подробности.