Lỗi mã hóa trình quản lý gói


9

Khi chạy package-list-packages, tôi nhận được lỗi sau.

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: 野 鳥

Làm cách nào tôi có thể đặt mã hóa trình quản lý gói mặc định thành utf-8?


(set-default buffer-file-coding-system 'utf-8)giúp được không?
PythonNut

2
Trong thực tế, một cái gì đó nên được thực hiện về phía máy chủ này.
Sean Allred

Câu trả lời:


8

Tùy thuộc vào sở thích của bạn, bạn có thể sử dụng dòng sau đây .emacsđể đặt hệ thống mã hóa mặc định của mình thành utf-8. Điều đó đã giải quyết vấn đề cho tôi và tôi chưa nhận thấy bất kỳ tác dụng phụ tiêu cực nào khác.

(prefer-coding-system 'utf-8)

Chỉ cần đảm bảo rằng bạn đặt biểu mẫu trước khi một cái gì đó như(require 'package)
Sean Allred

1

Nếu bạn cần mã hóa mặc định khác với utf-8, bạn có thể sử dụng một lời khuyên xung quanh chức năng gói danh sách để buộc sử dụng mã hóa 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)

Trong sử dụng hàng ngày tôi cần sử dụng:

(prefer-coding-system 'windows-1252)

Vì vậy, tôi đã khuyên chức năng gói danh sách ... hy vọng điều này có thể giúp đỡ.


0

Bạn có một dòng như thế này trong tập tin init của bạn?

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

Nếu vậy, hãy thử loại bỏ nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.