Đây là chức năng của tôi
import unicodedata
def unicode_to_ascii[note]:
str_map = {'Š' : 'S', 'š' : 's', 'Đ' : 'D', 'đ' : 'd', 'Ž' : 'Z', 'ž' : 'z', 'Č' : 'C', 'č' : 'c', 'Ć' : 'C', 'ć' : 'c', 'À' : 'A', 'Á' : 'A', 'Â' : 'A', 'Ã' : 'A', 'Ä' : 'A', 'Å' : 'A', 'Æ' : 'A', 'Ç' : 'C', 'È' : 'E', 'É' : 'E', 'Ê' : 'E', 'Ë' : 'E', 'Ì' : 'I', 'Í' : 'I', 'Î' : 'I', 'Ï' : 'I', 'Ñ' : 'N', 'Ò' : 'O', 'Ó' : 'O', 'Ô' : 'O', 'Õ' : 'O', 'Ö' : 'O', 'Ø' : 'O', 'Ù' : 'U', 'Ú' : 'U', 'Û' : 'U', 'Ü' : 'U', 'Ý' : 'Y', 'Þ' : 'B', 'ß' : 'Ss', 'à' : 'a', 'á' : 'a', 'â' : 'a', 'ã' : 'a', 'ä' : 'a', 'å' : 'a', 'æ' : 'a', 'ç' : 'c', 'è' : 'e', 'é' : 'e', 'ê' : 'e', 'ë' : 'e', 'ì' : 'i', 'í' : 'i', 'î' : 'i', 'ï' : 'i', 'ð' : 'o', 'ñ' : 'n', 'ò' : 'o', 'ó' : 'o', 'ô' : 'o', 'õ' : 'o', 'ö' : 'o', 'ø' : 'o', 'ù' : 'u', 'ú' : 'u', 'û' : 'u', 'ý' : 'y', 'ý' : 'y', 'þ' : 'b', 'ÿ' : 'y', 'Ŕ' : 'R', 'ŕ' : 'r'}
for key, value in str_map.items[]:
note = note.replace[key, value]
asciidata = unicodedata.normalize['NFKD', note].encode['ascii', 'ignore']
return asciidata.decode['UTF-8']
Các chuỗi Unicode có thể được mã hóa trong các chuỗi đơn giản cho bất kỳ mã nào bạn chọn. Nhân vật Python Unicode là đối tượng trừu tượng đủ lớn để giữ nhân vật, tương tự như các số nguyên dài của Python. Nếu chuỗi chỉ chứa các ký tự ASCII, hãy sử dụng hàm str [] & nbsp; để chuyển đổi nó thành một chuỗi.str[] function to convert it into a string.
data = u"xyzw" app = str[data] print[app]
Đầu ra
xyzw
Nếu bạn có một chuỗi unicode và bạn cần ghi nó vào một tệp hoặc biểu mẫu tuần tự hóa khác, trước tiên bạn phải mã hóa nó thành một biểu diễn cụ thể có thể được lưu.
Có rất nhiều mã hóa Unicode phổ biến, chẳng hạn như UTF-16 [sử dụng hai byte cho hầu hết các ký tự unicode] hoặc UTF-8 [sử dụng1-4 byte/codepoint tùy thuộc vào ký tự], v.v.UTF-16 [which uses two bytes for most Unicode characters] or UTF-8 [ which uses1-4 bytes/codepoint depending on the character], etc.
Để chuyển đổi chuỗi đó thành một mã hóa cụ thể, bạn có thể sử dụng mã sau.
data = u'£21' app = data.encode['UTF-8'] print[app] new = data.encode['UTF-16'] print[new]
Đầu ra
b'\xc2\xa321' b'\xff\xfe\xa3\x002\x001\x00'
Vì vậy, chúng tôi có đầu ra trong byte.
Để chuyển đổi byte thành chuỗi, hãy sử dụng hàm decode [].
data = u'£21' app = data.encode['UTF-8'] print[app.decode[]] new = data.encode['UTF-16'] print[new.decode['UTF-16']]
Đầu ra
£21 £21
Bạn có thể thấy rằng chúng tôi có chuỗi ban đầu của chúng tôi.
Để chuyển đổi python unicode thành chuỗi, hãy sử dụng hàm unicodedata.normalize []. Tiêu chuẩn Unicode xác định các dạng chuẩn hóa khác nhau của chuỗi Unicode, dựa trên sự tương đương và tương đương tương đương chính tắc.unicodedata.normalize[] function. The Unicode standard defines various normalization forms of a Unicode string, based on canonical equivalence and compatibility equivalence.
Đối với mỗi ký tự, có hai hình thức bình thường:
- Mẫu bình thường c
- Mẫu bình thường d
Mẫu D [NFD] bình thường còn được gọi là phân rã kinh điển và chuyển từng ký tự thành dạng phân hủy của nó. Mẫu C [NFC] bình thường lần đầu tiên áp dụng một sự phân hủy chính tắc, sau đó soạn lại các ký tự được kết hợp trước.
Cú pháp
unicodedata.normalize[form, unistr]
Mẫu KD bình thường [NFKD] sẽ áp dụng phân tách khả năng tương thích, ví dụ, thay thế tất cả các ký tự tương thích bằng các tương đương của chúng. Mẫu bình thường KC [NFKC] đầu tiên áp dụng phân tách khả năng tương thích, tiếp theo là thành phần chính tắc.
Ngay cả khi hai chuỗi Unicode được chuẩn hóa và trông giống với người đọc của con người, nếu một người có kết hợp các ký tự và không, họ có thể không so sánh bằng nhau.
Thí dụ
import unicodedata title = u"André skräms inför på fédéral électoral Verhältnismäßigkeit" nData = unicodedata.normalize['NFKD', title].encode['ASCII', 'ignore'] print[nData]
Đầu ra
b'Andre skrams infor pa federal electoral Verhaltnismaigkeit'
Bạn có thể thấy rằng trong đầu ra, chúng tôi đã nhận được chuỗi byte được mã hóa và bây giờ chúng tôi có thể giải mã nó để lấy chuỗi python bằng hàm decode [] String Decode [].
data = u"xyzw" app = str[data] print[app]0
Đầu ra
data = u"xyzw" app = str[data] print[app]1
Như bạn có thể thấy rằng bây giờ chúng tôi đã có chuỗi đơn giản trong đầu ra. Vì vậy, chúng tôi đã biến hoàn toàn đồng phục thành chuỗi trong Python. Đó là nó cho python unicode này để hướng dẫn chuỗi.That is it for this Python Unicode to String tutorial.
Xem thêm
Chuỗi python cho byte
Python B-String
Chuỗi python thành hex