Ошибка кодировки диспетчера пакетов


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
В действительности, однако, что-то должно быть сделано с этой стороны сервера.
Шон Оллред

Ответы:


8

В зависимости от ваших предпочтений, вы можете использовать следующую строку в вашей, .emacsчтобы установить систему кодирования по умолчанию в utf-8. Это решило проблему для меня, и я не заметил никаких других негативных побочных эффектов.

(prefer-coding-system 'utf-8)

Просто убедитесь, что вы поместили форму перед чем-то вроде(require 'package)
Шон Оллред

1

Если вам нужна кодировка по умолчанию, отличная от utf-8, вы можете использовать совет относительно функции list-package, чтобы принудительно использовать кодировку utf-8: ex:

(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

У вас есть такая строка в вашем файле инициализации?

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

Если это так, попробуйте удалить его.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.