Vim và Python cho biết mã hóa là ANSI_X3.4-1968


8

Trong Vim, các lệnh sau (sử dụng Python 3.4.3) xuất ra ANSI_X3.4-1968:

:!python -c "import sys; print(sys.stdout.encoding)"

Tuy nhiên, tôi muốn UTF-8 ở mọi nơi .

Trong .vimrc, tôi có set encoding=utf-8và ngôn ngữ của tôi được đặt chính xác nb_NO.UTF-8.

UTF-8 nói chung hoạt động tốt. Vấn đề duy nhất là khi thực hiện các lệnh với :!trong Vim.

Làm thế nào tôi có thể chạy lệnh ở trên, trong Vim, theo cách làm cho đầu ra trở thành UTF-8?


5
!PYTHONIOENCODING=utf-8 python -c "import sys; print(sys.stdout.encoding)" thực hiện công việc cho tôi nhưng tôi chắc chắn có một cách tốt hơn
iruvar

Cảm ơn bạn! Cài đặt PYTHONIOENCODINGđể utf-8hoạt động. Mặc dù thật kỳ lạ khi điều này không phải là mặc định ở mọi nơi.
Alexander

2
@Alexander Xem bug.python.org/su13643 để biết lý do tại sao nó không phải là mặc định.
ivan_pozdeev

@iruvar, nếu bạn muốn viết bình luận của bạn như một câu trả lời, tôi sẽ đánh dấu nó là câu trả lời được chấp nhận.
Alexander

Câu trả lời:


0

Trong python hoặc ngôn ngữ kịch bản khác, bạn có dòng shebang trong dòng đầu tiên, chẳng hạn như:

#!/usr/bin/env python

Sau đó, bạn có thể chỉ định mã hóa của mình trong dòng 2, chẳng hạn như:

# -*- coding: utf-8 -*-

Tất nhiên dòng thứ hai chỉ hoạt động trên python.

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.