Tôi đang cố nhập một số ký tự tiếng Tây Ban Nha thành các chuỗi trong chế độ tương tác. Ví dụ: option+e e
để tạo 'é' để tôi đưa ra tuyên bố như string="él"
. Điều này làm việc trong các thiết bị đầu cuối, nhưng trong python (bất kỳ phiên bản tôi đã cài đặt, trong đó tôi có một số) nó không. Nó đơn giản không tạo ra gì cả. Điều này bao gồm cố gắng dán các ký tự. Nó chính xác là vấn đề được mô tả trong this question, đặc biệt là phần về dán và trong bình luận của mình cho câu hỏi của Alex, nơi ông chỉ ra rằng câu trả lời của Alex không giải quyết câu hỏi về sự thất bại của sao chép/dán liên quan đến utf-8 ký tự. Tôi có thể làm cái này như thế nào?Nhập các ký tự utf-8 vào python ở chế độ tương tác trên OS-X
Trả lời
sử dụng u
trước chuỗi ký tự, để làm cho chuỗi này trở thành một chuỗi unicode.
string = u"El avión cayó del cielo"
nếu điều đó không làm việc mà vấn đề nằm trong trình soạn thảo hoặc thiết bị đầu cuối của bạn, trong trường hợp đó thử thêm
#coding: utf8
trong bất kỳ của 2 dòng đầu tiên của chương trình python của bạn và sử dụng một trình soạn thảo phù hợp với unicode ủng hộ.
Đề xuất đầu tiên không hoạt động, tôi không thể nhập ký tự nào cả vào trình thông dịch.Tôi không chắc chắn những gì bạn có ý nghĩa trong đề xuất thứ hai. Tôi đang sử dụng các ứng dụng thiết bị đầu cuối đi kèm với OS-X và tôi có thể nhập các ký tự trong trình bao, nhưng không phải trong python ở chế độ tương tác. Tôi đã thay đổi mã hóa mặc định của mình thành 'utf-8' trong 'sitecustomize.py'. –
Thay đổi hệ thống mã hóa mặc định rộng không được khuyến nghị nó có thể phá vỡ một số thư viện. – KurzedMetal
** Không ** thay đổi mã hóa mặc định. 'Sys nhập khẩu; print (sys.stdout.encoding) 'nói? –
Thư viện readline
mà Python sử dụng để đọc đầu vào tương tác không chấp nhận ký tự không phải ASCII được gửi bởi thiết bị đầu cuối. Điều này có nghĩa là trình giả lập thiết bị đầu cuối của bạn không cung cấp các ký tự trong mã hóa UTF-8, hoặc readline không được cấu hình để chấp nhận đầu vào UTF-8.
May mắn thay, dòng đọc được sử dụng bởi nhiều chương trình phổ biến, bao gồm vỏ bash
, vì vậy có rất nhiều thông tin về cách làm cho nó hoạt động. Ví dụ: from this article:
Làm thế nào để đầu vào UTF-8 hoạt động chính xác?
- Trong Terminal Inspector:
- Trong phần thi đua, tắt Escape phi ASCII tùy chọn ký tự.
- Trong phần Hiển thị, chọn Unicode (UTF-8) làm Bộ mã hóa ký tự.
Thêm dòng sau vào
.profile:
export LC_CTYPE=en_US.UTF-8
Thêm các dòng sau để
.inputrc
của bạn:set meta-flag on set input-meta on set output-meta on set convert-meta off
Áp dụng thay đổi bằng cách thực hiện một
source ~/.profile
vàsource ~/.inputrc
.
Điều này cũng không may là không giải quyết được vấn đề đó – Rmatt
- 1. ghci - biên dịch háo hức ở chế độ tương tác?
- 2. Làm cách nào để nhập ký tự bảng Anh (£) vào trình tương tác Python trên Mac OS X?
- 3. Chế độ tương tác trong matplotlib
- 4. Có khả năng thực thi tập lệnh Python khi đang ở chế độ tương tác
- 5. Hỗ trợ ký tự [và] ở chế độ PDU
- 6. Lịch sử chế độ tương tác của Python và các phím mũi tên
- 7. Bật chế độ linum khi ở chế độ python/c
- 8. pythonrc.py không tải trong chế độ tương tác
- 9. MVC: các mô hình tương tác với chế độ xem?
- 10. Làm thế nào để kích hoạt chế độ tương tác python trong Cygwin?
- 11. hạn chế ký tự để nhập vào hộp văn bản
- 12. vim - không nhận ra bí danh khi ở chế độ tương tác?
- 13. Xử lý UTF8 ở C
- 14. Vấn đề nhập chế độ Python
- 15. Chế độ Viper ở tất cả các chế độ
- 16. Giới hạn chuỗi đầu vào Python đối với các ký tự và độ dài nhất định
- 17. bắt đầu chế độ tương tác trên một dòng lệnh cụ thể
- 18. Chạy tệp SML nhưng không được để ở chế độ tương tác
- 19. Ký tự đại diện trong Chế độ xem với CouchDB?
- 20. Emacs: nhập CSV vào chế độ org
- 21. Nhập dữ liệu vào ứng dụng dòng lệnh tương tác
- 22. đọc các cột "SELECT *" vào chuỗi [] ở chế độ
- 23. Thực hiện tác vụ ở chế độ nền trong JavaFX
- 24. vim: undo newline ở chế độ chèn?
- 25. ngày chế độ org ở các chế độ Emacs khác
- 26. Làm cách nào để thay đổi ký tự ổ đĩa ở chế độ ido (Emacs)?
- 27. Làm thế nào để bạn nhận được kết quả định dạng bảng từ MySQL ở chế độ không tương tác?
- 28. Nhập các ký tự không phải ASCII vào scanf ("% s")
- 29. Nhập ký tự null vào terminal
- 30. Python Chuỗi Cleanup + Thao tác (ký tự có dấu)
Chính xác bạn có ý gì bởi "trình thông dịch Python"? Tôi truy cập vào shell Python * thông qua * terminal - làm thế nào để bạn làm điều đó? –
Tôi nghĩ rằng tôi có nghĩa là chế độ tương tác. Đã thay đổi câu hỏi. –
Điều đó không trả lời được câu hỏi của tôi. Làm thế nào bạn nhận được để điều này bạn đang gọi là "chế độ tương tác"? –