包管理器编码错误


9

运行时package-list-packages,出现以下错误。

These default coding systems were tried to encode text
in the buffer ` *temp*':
  (iso-latin-1-dos (3242 . 37326) (3243 . 40165))
However, each of them encountered characters it couldn't encode:
  iso-latin-1-dos cannot encode these: 野 鳥

如何将默认的包管理器编码设置为utf-8


(set-default buffer-file-coding-system 'utf-8)帮助吗?
PythonNut

2
但是实际上,应该对此服务器端做一些事情。
肖恩·阿雷德

Answers:


8

根据您的喜好,您可以使用以下行将.emacs默认编码系统设置为utf-8。那为我解决了这个问题,而且我还没有发现其他负面影响。

(prefer-coding-system 'utf-8)

只要确保你把表格之前类似(require 'package)
肖恩·奥尔雷德

1

如果您需要不同于utf-8的默认编码,则可以在list-package函数周围使用建议以强制使用utf-8编码:例如:

(defun pte/list-packages (org-fun &rest args)
  "Ensure to set `buffer-file-coding-system' to utf-8 before calling `list-packages'."
  (let ((buffer-file-coding-system 'utf-8))
    (apply org-fun args)))

(advice-add 'list-packages :around #'pte/list-packages)

在日常使用中,我需要使用:

(prefer-coding-system 'windows-1252)

因此,我建议使用list-package函数...希望对您有所帮助。


0

您的init文件中是否有这样的行?

(set-language-environment "Latin-1")

如果是这样,请尝试将其删除。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.