2013-07-08 28 views
5

Không thể có được những danh hiệu ngay trong matplotlib: 'technologieën in °C' cho: technologieÃn in ÃC giải pháp khả thi đã cố gắng: u'technologieën in °C 'làm việc doens't và cũng như thế: # -*- coding: utf-8 -*- vào đầu của mã-file. Bất kỳ giải pháp nào?Unicode hoặc những gì trong matplotlib?

+0

trình tốt cho tôi: http://ideone.com/nhrP0m –

+0

@AshwiniChaudhary: Đó là bởi vì bạn đã gặp may và dán vào bảng mã phù hợp với mã hóa đầu ra IDEOne.com. Hoặc mã hóa đầu cuối của bạn. Nhưng một thiết bị đầu cuối hoặc mã hóa trang IDEOne.com không giống với đầu ra do matplotlib tạo ra. –

Trả lời

11

Bạn cần phải vượt qua trong unicode văn bản:

u'technologieën in °C' 

Đừng chắc chắn rằng bạn sử dụng những nhận xét # -*- coding: utf-8 -*- ở phía trên, và chắc chắn soạn thảo văn bản của bạn được thực sự sử dụng codec nào. Nếu trình soạn thảo của bạn lưu tệp dưới dạng văn bản được mã hóa bằng Latin-1, hãy sử dụng codec đó trong tiêu đề, v.v. Nhận xét liên kết với Python cách diễn giải tệp nguồn của bạn, đặc biệt là khi phân tích cú pháp chuỗi.

Ngoài ra, mã sử dụng lối thoát cho bất cứ điều gì khác ASCII trong literals Unicode của bạn:

u'technologie\u00ebn in \u00b0C' 

và tránh những vấn đề về những gì codec để sử dụng ở nơi đầu tiên.

Tôi kêu gọi bạn đọc:

trước khi tiếp tục.

+0

Giải pháp duy nhất hoạt động là: u'technologie \ u00ebn in \ u00b0C '. # - * - mã hóa: utf-8 - * - kết hợp với u'technologieën ở ° C 'không hoạt động. – Jomme

+0

Sau đó, mã hóa trình soạn thảo văn bản của bạn sử dụng không * không * khớp với codec bạn đã chỉ định trong nhận xét ở trên cùng. Nếu trình soạn thảo của bạn sử dụng trang mã cửa sổ hiện tại, hãy thay đổi nó thành 'cp1252' (phiên bản Windows Latin 1) thay vì UTF8, ví dụ. Cho rằng văn bản của bạn là tiếng Hà Lan (hoi!) Đó là dự đoán đầu tiên của tôi. –

+0

# -- coding: cp1252 --
không hoạt động. Tôi làm việc với Spyder. – Jomme

0

Trong Python3, không cần phải lo lắng về tất cả các sự cố UTF-8 phiền toái.

Một lưu ý rằng bạn sẽ cần phải đặt phông chữ Unicode trước khi vẽ.

matplotlib.rc('font', family='Arial')