Last active
May 3, 2022 02:20
-
-
Save ntdat017/7338be9809f0274100de843455dfc8cc to your computer and use it in GitHub Desktop.
Function Tranform Unicode Compound to Unicode (UTF-8) of Vietnamese character. Read more about charset in vnese at http://vietunicode.sourceforge.net/charset/vietcharset.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import io | |
def compound_unicode(unicode_str): | |
""" | |
Tranform Unicode Compound to Unicode (UTF-8). | |
Chuyển đổi chuỗi Unicode Tổ Hợp sang Unicode UTF-8. | |
Edited from: https://gist.github.com/anhtran/d317a2c52b015bb243fd262f1cad0e4f | |
""" | |
unicode_str = unicode_str.replace("e\xd2", "\u1EBB") # ẻ | |
unicode_str = unicode_str.replace("e\xec", "\u00E9") # é | |
unicode_str = unicode_str.replace("e\xcc", "\u00E8") # è | |
unicode_str = unicode_str.replace("e\xf2", "\u1EB9") # ẹ | |
unicode_str = unicode_str.replace("e\xde", "\u1EBD") # ẽ | |
unicode_str = unicode_str.replace("\xea\xd2", "\u1EC3") # ể | |
unicode_str = unicode_str.replace("\xea\xec", "\u1EBF") # ế | |
unicode_str = unicode_str.replace("\xea\xcc", "\u1EC1") # ề | |
unicode_str = unicode_str.replace("\xea\xf2", "\u1EC7") # ệ | |
unicode_str = unicode_str.replace("\xea\xde", "\u1EC5") # ễ | |
unicode_str = unicode_str.replace("\xea", "\u00EA") # ê | |
unicode_str = unicode_str.replace("y\xd2", "\u1EF7") # ỷ | |
unicode_str = unicode_str.replace("y\xec", "\u00FD") # ý | |
unicode_str = unicode_str.replace("y\xcc", "\u1EF3") # ỳ | |
unicode_str = unicode_str.replace("y\xf2", "\u1EF5") # ỵ | |
unicode_str = unicode_str.replace("y\xde", "\u1EF9") # ỹ | |
unicode_str = unicode_str.replace("u\xd2", "\u1EE7") # ủ | |
unicode_str = unicode_str.replace("u\xec", "\u00FA") # ú | |
unicode_str = unicode_str.replace("u\xcc", "\u00F9") # ù | |
unicode_str = unicode_str.replace("u\xf2", "\u1EE5") # ụ | |
unicode_str = unicode_str.replace("u\xde", "\u0169") # ũ | |
unicode_str = unicode_str.replace("\xfd\xd2", "\u1EED") # ử | |
unicode_str = unicode_str.replace("\xfd\xec", "\u1EE9") # ứ | |
unicode_str = unicode_str.replace("\xfd\xcc", "\u1EEB") # ừ | |
unicode_str = unicode_str.replace("\xfd\xf2", "\u1EF1") # ự | |
unicode_str = unicode_str.replace("\xfd\xde", "\u1EEF") # ữ | |
unicode_str = unicode_str.replace("\xfd", "\u01B0") # ư | |
unicode_str = unicode_str.replace("i\xd2", "\u1EC9") # ỉ | |
unicode_str = unicode_str.replace("i\xec", "\u00ED") # í | |
unicode_str = unicode_str.replace("i\xcc", "\u00EC") # ì | |
unicode_str = unicode_str.replace("i\xf2", "\u1ECB") # ị | |
unicode_str = unicode_str.replace("i\xde", "\u0129") # ĩ | |
unicode_str = unicode_str.replace("o\xd2", "\u1ECF") # ỏ | |
unicode_str = unicode_str.replace("o\xec", "\u00F3") # ó | |
unicode_str = unicode_str.replace("o\xcc", "\u00F2") # ò | |
unicode_str = unicode_str.replace("o\xf2", "\u1ECD") # ọ | |
unicode_str = unicode_str.replace("o\xde", "\u00F5") # õ | |
unicode_str = unicode_str.replace("\xf5\xd2", "\u1EDF") # ở | |
unicode_str = unicode_str.replace("\xf5\xec", "\u1EDB") # ớ | |
unicode_str = unicode_str.replace("\xf5\xcc", "\u1EDD") # ờ | |
unicode_str = unicode_str.replace("\xf5\xf2", "\u1EE3") # ợ | |
unicode_str = unicode_str.replace("\xf5\xde", "\u1EE1") # ỡ | |
unicode_str = unicode_str.replace("\xf5", "\u01A1") # ơ | |
unicode_str = unicode_str.replace("\xf4\xd2", "\u1ED5") # ổ | |
unicode_str = unicode_str.replace("\xf4\xec", "\u1ED1") # ố | |
unicode_str = unicode_str.replace("\xf4\xcc", "\u1ED3") # ồ | |
unicode_str = unicode_str.replace("\xf4\xf2", "\u1ED9") # ộ | |
unicode_str = unicode_str.replace("\xf4\xde", "\u1ED7") # ỗ | |
unicode_str = unicode_str.replace("\xf4", "\u00F4") # ô | |
unicode_str = unicode_str.replace("a\xd2", "\u1EA3") # ả | |
unicode_str = unicode_str.replace("a\xec", "\u00E1") # á | |
unicode_str = unicode_str.replace("a\xcc", "\u00E0") # à | |
unicode_str = unicode_str.replace("a\xf2", "\u1EA1") # ạ | |
unicode_str = unicode_str.replace("a\xde", "\u00E3") # ã | |
unicode_str = unicode_str.replace("\xe3\xd2", "\u1EB3") # ẳ | |
unicode_str = unicode_str.replace("\xe3\xec", "\u1EAF") # ắ | |
unicode_str = unicode_str.replace("\xe3\xcc", "\u1EB1") # ằ | |
unicode_str = unicode_str.replace("\xe3\xf2", "\u1EB7") # ặ | |
unicode_str = unicode_str.replace("\xe3\xde", "\u1EB5") # ẵ | |
unicode_str = unicode_str.replace("\xe3", "\u0103") # ă | |
unicode_str = unicode_str.replace("\xe2\xd2", "\u1EA9") # ẩ | |
unicode_str = unicode_str.replace("\xe2\xec", "\u1EA5") # ấ | |
unicode_str = unicode_str.replace("\xe2\xcc", "\u1EA7") # ầ | |
unicode_str = unicode_str.replace("\xe2\xf2", "\u1EAD") # ậ | |
unicode_str = unicode_str.replace("\xe2\xde", "\u1EAB") # ẫ | |
unicode_str = unicode_str.replace("\xe2", "\u00E2") # â | |
unicode_str = unicode_str.replace("E\xd2", "\u1EBA") # Ẻ | |
unicode_str = unicode_str.replace("E\xec", "\u00C9") # É | |
unicode_str = unicode_str.replace("E\xcc", "\u00C8") # È | |
unicode_str = unicode_str.replace("E\xf2", "\u1EB8") # Ẹ | |
unicode_str = unicode_str.replace("E\xde", "\u1EBC") # Ẽ | |
unicode_str = unicode_str.replace("\xca\xd2", "\u1EC2") # Ể | |
unicode_str = unicode_str.replace("\xca\xec", "\u1EBE") # Ế | |
unicode_str = unicode_str.replace("\xca\xcc", "\u1EC0") # Ề | |
unicode_str = unicode_str.replace("\xca\xf2", "\u1EC6") # Ệ | |
unicode_str = unicode_str.replace("\xca\xde", "\u1EC4") # Ễ | |
unicode_str = unicode_str.replace("\xca", "\u00CA") # Ê | |
unicode_str = unicode_str.replace("Y\xd2", "\u1EF6") # Ỷ | |
unicode_str = unicode_str.replace("Y\xec", "\u00DD") # Ý | |
unicode_str = unicode_str.replace("Y\xcc", "\u1EF2") # Ỳ | |
unicode_str = unicode_str.replace("Y\xf2", "\u1EF4") # Ỵ | |
unicode_str = unicode_str.replace("Y\xde", "\u1EF8") # Ỹ | |
unicode_str = unicode_str.replace("U\xd2", "\u1EE6") # Ủ | |
unicode_str = unicode_str.replace("U\xec", "\u00DA") # Ú | |
unicode_str = unicode_str.replace("U\xcc", "\u00D9") # Ù | |
unicode_str = unicode_str.replace("U\xf2", "\u1EE4") # Ụ | |
unicode_str = unicode_str.replace("U\xde", "\u0168") # Ũ | |
unicode_str = unicode_str.replace("\xdd\xd2", "\u1EEC") # Ử | |
unicode_str = unicode_str.replace("\xdd\xec", "\u1EE8") # Ứ | |
unicode_str = unicode_str.replace("\xdd\xcc", "\u1EEA") # Ừ | |
unicode_str = unicode_str.replace("\xdd\xf2", "\u1EF0") # Ự | |
unicode_str = unicode_str.replace("\xdd\xde", "\u1EEE") # Ữ | |
unicode_str = unicode_str.replace("\xdd", "\u01AF") # Ư | |
unicode_str = unicode_str.replace("I\xd2", "\u1EC8") # Ỉ | |
unicode_str = unicode_str.replace("I\xec", "\u00CD") # Í | |
unicode_str = unicode_str.replace("I\xcc", "\u00CC") # Ì | |
unicode_str = unicode_str.replace("I\xf2", "\u1ECA") # Ị | |
unicode_str = unicode_str.replace("I\xde", "\u0128") # Ĩ | |
unicode_str = unicode_str.replace("O\xd2", "\u1ECE") # Ỏ | |
unicode_str = unicode_str.replace("O\xec", "\u00D3") # Ó | |
unicode_str = unicode_str.replace("O\xcc", "\u00D2") # Ò | |
unicode_str = unicode_str.replace("O\xf2", "\u1ECC") # Ọ | |
unicode_str = unicode_str.replace("O\xde", "\u00D5") # Õ | |
unicode_str = unicode_str.replace("\xd5\xd2", "\u1EDE") # Ở | |
unicode_str = unicode_str.replace("\xd5\xec", "\u1EDA") # Ớ | |
unicode_str = unicode_str.replace("\xd5\xcc", "\u1EDC") # Ờ | |
unicode_str = unicode_str.replace("\xd5\xf2", "\u1EE2") # Ợ | |
unicode_str = unicode_str.replace("\xd5\xde", "\u1EE0") # Ỡ | |
unicode_str = unicode_str.replace("\xd5", "\u01A0") # Ơ | |
unicode_str = unicode_str.replace("\xd4\xd2", "\u1ED4") # Ổ | |
unicode_str = unicode_str.replace("\xd4\xec", "\u1ED0") # Ố | |
unicode_str = unicode_str.replace("\xd4\xcc", "\u1ED2") # Ồ | |
unicode_str = unicode_str.replace("\xd4\xf2", "\u1ED8") # Ộ | |
unicode_str = unicode_str.replace("\xd4\xde", "\u1ED6") # Ỗ | |
unicode_str = unicode_str.replace("\xd4", "\u00D4") # Ô | |
unicode_str = unicode_str.replace("A\xd2", "\u1EA2") # Ả | |
unicode_str = unicode_str.replace("A\xec", "\u00C1") # Á | |
unicode_str = unicode_str.replace("A\xcc", "\u00C0") # À | |
unicode_str = unicode_str.replace("A\xf2", "\u1EA0") # Ạ | |
unicode_str = unicode_str.replace("A\xde", "\u00C3") # Ã | |
unicode_str = unicode_str.replace("\xc3\xd2", "\u1EB2") # Ẳ | |
unicode_str = unicode_str.replace("\xc3\xec", "\u1EAE") # Ắ | |
unicode_str = unicode_str.replace("\xc3\xcc", "\u1EB0") # Ằ | |
unicode_str = unicode_str.replace("\xc3\xf2", "\u1EB6") # Ặ | |
unicode_str = unicode_str.replace("\xc3\xde", "\u1EB4") # Ẵ | |
unicode_str = unicode_str.replace("\xc3", "\u0102") # Ă | |
unicode_str = unicode_str.replace("\xc2\xd2", "\u1EA8") # Ẩ | |
unicode_str = unicode_str.replace("\xc2\xec", "\u1EA4") # Ấ | |
unicode_str = unicode_str.replace("\xc2\xcc", "\u1EA6") # Ầ | |
unicode_str = unicode_str.replace("\xc2\xf2", "\u1EAC") # Ậ | |
unicode_str = unicode_str.replace("\xc2\xde", "\u1EAA") # Ẫ | |
unicode_str = unicode_str.replace("\xc2", "\u00C2") # Â | |
unicode_str = unicode_str.replace("\xf0", "\u0111") # đ | |
unicode_str = unicode_str.replace("\xd0", "\u0110") # Đ | |
return unicode_str |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment