2011-08-09 74 views
5

Chuỗi hex '\xd3' cũng có thể được biểu diễn dưới dạng: Ó.Chuyển đổi từ ký tự hex sang ký tự Unicode trong python

Cách đơn giản nhất tôi đã tìm thấy để có được những đại diện ký tự của chuỗi hex để giao diện điều khiển là:

print unichr(ord('\xd3')) 

Hoặc bằng tiếng Anh, chuyển đổi chuỗi hex cho một số, sau đó chuyển đổi con số đó để một điểm mã unicode, sau đó cuối cùng xuất ra màn hình. Điều này có vẻ giống như một bước phụ. Có cách nào dễ hơn không?

Trả lời

8
print u'\xd3' 

Tất cả những gì bạn phải làm. Bạn chỉ cần bằng cách nào đó nói với Python nó là một chữ unicode; hàng đầu u thực hiện điều đó. Nó thậm chí sẽ làm việc cho nhiều nhân vật.

Nếu bạn đang không nói về một chữ, nhưng một biến:

codepoints = '\xd3\xd3' 
print codepoints.decode("latin-1") 

Chỉnh sửa: Chỉ định một mã hóa cụ thể khi print ing sẽ không hoạt động nếu nó không tương thích với mã hóa thiết bị đầu cuối của bạn, vì vậy hãy để print làm encode(sys.stdout.encoding) tự động. Cảm ơn @ThomasK.

+0

Nhưng, bạn sẽ làm gì nếu bạn có chuỗi bao gồm các điểm mã? Làm thế nào bạn sẽ chuyển đổi chuỗi thành biểu diễn chuỗi thực tế? 'U' là một hàm? Chúng ta có thể viết 'u (some_string)'? – Geo

+0

@Geo: 'u' không phải là hàm, nó là một phần của cú pháp chuỗi ký tự. Nhưng 'chuỗi bao gồm các điểm mã' là gì? –

+0

@Thomas Tôi đã chỉnh sửa câu trả lời của mình để đề cập đến điều đó. – agf

Các vấn đề liên quan