Đâ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'
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.
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
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.unicodedata.normalize[] function. The Unicode standard defines various normalization forms of a Unicode string, based on canonical equivalence and compatibility equivalence.
Để chuyển đổi chuỗi đó thành một mã hóa cụ thể, bạn có thể sử dụng mã sau.
- 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 [].
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[form, unistr]
Đố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
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'
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.
data = u"xyzw" app = str[data] print[app]0
Đầu ra
data = u"xyzw" app = str[data] print[app]1
Cú phápThat is it for this Python Unicode to String tutorial.
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ụ
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 [].