Hướng dẫn python 2 string encode - mã hóa chuỗi 2 python

Trang trước

Trang sau  

Miêu tả

Phương thức encode[] trả về phiên bản chuỗi đã được mã hóa của chuỗi ban đầu. Nếu có lỗi xảy ra, thì chương trình sẽ tạo một ValueError trừ khi các lỗi này được cung cấp với ignore hoặc replace.encode[] trả về phiên bản chuỗi đã được mã hóa của chuỗi ban đầu. Nếu có lỗi xảy ra, thì chương trình sẽ tạo một ValueError trừ khi các lỗi này được cung cấp với ignore hoặc replace.

Cú pháp

str.encode[encoding='UTF-8',errors='strict']

Chi tiết về tham số:

  • encoding -- Đây là encodings để được sử dụng. -- Đây là encodings để được sử dụng.

  • errors -- Tham số này có thể được cung cấp để thiết lập một trình xử lý lỗi khác. Mặc định cho lỗi là 'strict', nghĩa là các lỗi liên quan tới mã hóa sẽ tạo một UnicodeError. Một số giá trị khác là 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' ... -- Tham số này có thể được cung cấp để thiết lập một trình xử lý lỗi khác. Mặc định cho lỗi là 'strict', nghĩa là các lỗi liên quan tới mã hóa sẽ tạo một UnicodeError. Một số giá trị khác là 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' ...

Quảng cáo

Trả về giá trị

Trả về phiên bản chuỗi đã được mã hóa của chuỗi ban đầu.

Chương trình Python ví dụ

 

str = "vi du Python ve chuoi!!!";

print "Ma hoa chuoi la: " + str.encode['base64','strict']

Kết quả là:

Ma hoa chuoi la: dmkgZHUgUHl0aG9uIHZlIGNodW9pISEh

Trang trước

PDF

Trang sau  

Miêu tả

Phương thức encode[] trả về phiên bản chuỗi đã được mã hóa của chuỗi ban đầu. Nếu có lỗi xảy ra, thì chương trình sẽ tạo một ValueError trừ khi các lỗi này được cung cấp với ignore hoặc replace.

  • Cú pháp

  • Chi tiết về tham số:

  • encoding -- Đây là encodings để được sử dụng.

  • errors -- Tham số này có thể được cung cấp để thiết lập một trình xử lý lỗi khác. Mặc định cho lỗi là 'strict', nghĩa là các lỗi liên quan tới mã hóa sẽ tạo một UnicodeError. Một số giá trị khác là 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' ...

  • Quảng cáo

  • Trả về giá trị

  • Trả về phiên bản chuỗi đã được mã hóa của chuỗi ban đầu.

  • Chương trình Python ví dụ

  • Kết quả là:

LÀm Cách nÀo Để in văn bản Được MÃ HÓA UTF-8 VÀO

print u"some unicode text \N{EURO SIGN}"
print b"some utf-8 encoded bytestring \xe2\x82\xac".decode['utf-8']

tức là, nếu bạn đó là một chuỗi unicode thì hãy trong nó trực tiếp. Nếu bạn Có một bytestring thì trước tin hãy chuyển nó hát unicode.

Cài đặt ngôn ngữ của bạn [LANG, ____1010] Cho bi ạ đồng Cuối Của bạn [nế trong unicode trực tiếp Để họ thế.in Unicode trực tiếp để thay thế .

Đó là rất nhiều GIả Đ-Nh Sai Trong Câu Hỏi Của Bạn.

Bạn không cần phải thiết lập ________ 11với cài đặt ngôn ngữ của mÌnh Ngôn ngữ utf-8 hỗ trợ tất cả các ký tự unicode tức là, nó hoạt /ng NHư hiện tại.

Bạn Không Cần Giải Pháp Thay Thế

 

str = "vi du Python ve chuoi!!!";

print "Ma hoa chuoi la: " + str.encode['base64','strict']
2. Nó bạn thể bị . Cài Đặt Ngôn ngữ Chính Xácc Và / Hoặc
 

str = "vi du Python ve chuoi!!!";

print "Ma hoa chuoi la: " + str.encode['base64','strict']
1envvar Là Đủ. NGOÀi ra, nếu bạn cần họ thế ________ 14thì hÃy

________ 18không liên Quan Đến Cài Đặt Ngôn ngữ Của Bạn Và Tới

 

str = "vi du Python ve chuoi!!!";

print "Ma hoa chuoi la: " + str.encode['base64','strict']
1. GIả ĐịNH CủA BạN RằNG CÀi ĐặT
 

str = "vi du Python ve chuoi!!!";

print "Ma hoa chuoi la: " + str.encode['base64','strict']
1 Sẽ Thay Bạn nên kiểm tra
Ma hoa chuoi la: dmkgZHUgUHl0aG9uIHZlIGNodW9pISEh
2thay thế.

________ 18khônc Đan sử dụng Khia bạn trong ra bảng Điều khiếu. Nóó thể đc sử dụng lào

$ python2 -c'import sys; print[sys.stdout.encoding]'
UTF-8
$ python2 -c'import sys; print[sys.stdout.encoding]' | cat
None
$ PYTHONIOENCODING=utf8 python2 -c'import sys; print[sys.stdout.encoding]' | cat
utf8

Đừng Gọi Điện Thoại

Ma hoa chuoi la: dmkgZHUgUHl0aG9uIHZlIGNodW9pISEh
5; nóó thể lÀm hỏng d GHI ________ 18được sử dụng Để Chuyển ĐổI Bytestrings [
Ma hoa chuoi la: dmkgZHUgUHl0aG9uIHZlIGNodW9pISEh
7] Đến / Từ ________ 28bằng Python 2 ngầm Ví Dụ
Ma hoa chuoi la: dmkgZHUgUHl0aG9uIHZlIGNodW9pISEh
9. Xem thêmm, Trí dẫn trong câu trả lời của @ mesilliac.

10 hữu não 0 bình luận Chia sẻ 0 bình luận chia sẻ

Bạn đã vấp phải vấn đề chung với mã hóa: Làm thế nào tôi có thể biết mã hóa nào là mã hóa?

Trả lời: Bạn không thể trừ khi định dạng tệp cung cấp cho điều này. XML, ví dụ, bắt đầu với:


Tiêu đề này đã được lựa chọn cẩn thận để nó có thể được đọc bất kể mã hóa. Trong trường hợp của bạn, không có gợi ý như vậy, do đó, cả biên tập viên và Python của bạn đều không biết chuyện gì đang xảy ra. Do đó, bạn phải sử dụng mô -đun

 

str = "vi du Python ve chuoi!!!";

print "Ma hoa chuoi la: " + str.encode['base64','strict']
6 và sử dụng
print u"some unicode text \N{EURO SIGN}"
print b"some utf-8 encoded bytestring \xe2\x82\xac".decode['utf-8']
1 cung cấp bit còn thiếu trong Python.

Đối với trình soạn thảo của bạn, bạn phải kiểm tra xem nó có cung cấp một số cách để đặt mã hóa tệp không.

Điểm của UTF-8 là có thể mã hóa các ký tự 21 bit [Unicode] dưới dạng luồng dữ liệu 8 bit [vì đó là điều duy nhất mà tất cả các máy tính trên thế giới có thể xử lý]. Nhưng vì hầu hết các OSS có trước thời đại Unicode, chúng không có công cụ phù hợp để đính kèm thông tin mã hóa vào các tệp trên đĩa cứng.

Vấn đề tiếp theo là đại diện trong Python. Điều này được giải thích hoàn hảo trong bình luận của Heikogerlach. Bạn phải hiểu rằng bảng điều khiển của bạn chỉ có thể hiển thị ASCII. Để hiển thị Unicode hoặc bất cứ thứ gì> = Charcode 128, nó phải sử dụng một số phương tiện thoát ra. Trong trình soạn thảo của bạn, bạn không được nhập chuỗi hiển thị thoát nhưng ý nghĩa của chuỗi [trong trường hợp này, bạn phải nhập Umlaut và lưu tệp].

Điều đó nói rằng, bạn có thể sử dụng hàm python eval [] để biến chuỗi thoát ra thành một chuỗi:

>>> x = eval["'Capit\\xc3\\xa1n\\n'"]
>>> x
'Capit\xc3\xa1n\n'
>>> x[5]
'\xc3'
>>> len[x[5]]
1

Như bạn có thể thấy, chuỗi "\ xc3" đã được biến thành một ký tự duy nhất. Đây bây giờ là một chuỗi 8 bit, UTF-8 được mã hóa. Để nhận unicode:

>>> x.decode['utf-8']
u'Capit\xe1n\n'

Gregg Lind đã hỏi: Tôi nghĩ có một số phần còn thiếu ở đây: Tệp F2 chứa: Hex:

0000000: 4361 7069 745c 7863 335c 7861 316e  Capit\xc3\xa1n

print u"some unicode text \N{EURO SIGN}"
print b"some utf-8 encoded bytestring \xe2\x82\xac".decode['utf-8']
2, ví dụ, đọc tất cả chúng trong một ký tự riêng biệt [dự kiến] có cách nào để ghi vào một tệp trong ASCII sẽ hoạt động không?

Trả lời: Điều đó phụ thuộc vào ý của bạn. ASCII không thể đại diện cho các ký tự> 127. Vì vậy, bạn cần một số cách để nói "một vài ký tự tiếp theo có nghĩa là một cái gì đó đặc biệt", đó là những gì chuỗi "\ x" làm. Nó nói: Hai ký tự tiếp theo là mã của một ký tự. "\ u" thực hiện tương tự bằng cách sử dụng bốn ký tự để mã hóa Unicode lên đến 0xffff [65535].

Vì vậy, bạn không thể trực tiếp viết unicode vào ASCII [vì ASCII đơn giản là không chứa cùng một ký tự]. Bạn có thể viết nó dưới dạng chuỗi thoát [như trong F2]; Trong trường hợp này, tệp có thể được biểu diễn dưới dạng ASCII. Hoặc bạn có thể viết nó dưới dạng UTF-8, trong trường hợp đó, bạn cần một luồng an toàn 8 bit.

Giải pháp của bạn sử dụng

print u"some unicode text \N{EURO SIGN}"
print b"some utf-8 encoded bytestring \xe2\x82\xac".decode['utf-8']
3 không hoạt động, nhưng bạn phải biết bạn sử dụng bao nhiêu bộ nhớ: gấp ba lần số lượng sử dụng
print u"some unicode text \N{EURO SIGN}"
print b"some utf-8 encoded bytestring \xe2\x82\xac".decode['utf-8']
4.

Hãy nhớ rằng một tệp chỉ là một chuỗi các byte với 8 bit. Cả bit và byte đều không có ý nghĩa. Chính bạn là người nói "65 có nghĩa là 'A'". Vì

print u"some unicode text \N{EURO SIGN}"
print b"some utf-8 encoded bytestring \xe2\x82\xac".decode['utf-8']
5 sẽ trở thành "à" nhưng máy tính không có cách nào để biết, bạn phải nói bằng cách chỉ định mã hóa được sử dụng khi viết tệp.

Bài Viết Liên Quan

Chủ Đề