0
点赞
收藏
分享

微信扫一扫

特殊字符 U+200X/

哈哈我是你爹呀 2022-03-30 阅读 69

文章目录


处理大量多语文本,可以看到很多特殊字符,这里陆续将遇到的字符在这里做个总结。
查询过程中发现个很好的网站,包含了很多 Unicode 字符的说明,感兴趣可以进入了解下:
Unicode 字符百科
https://unicode-table.com/cn/



格式字符

Unicode编号Unicode名称HTML代码CSS代码
U+200BZero Width Space
零宽间隔
​\200B
U+200CZero Width Non-Joiner
零宽无连接符
‌\200C
U+200DZero Width Joine
零宽连接符
‍\200D
U+200ELeft-To-Right Mark
从左至右标志
‎\200E
U+200FRight-To-Left Mark
从右至左标志
‏\200F

在部分语种,如希伯来语中常见这类字符。
比如一句希伯来语中既包含希伯来语,又包含英语,就会出现字符来告知阅读顺序。
这类字符建议不要去掉。


多语种Unicode 字符

https://unicode-table.com/cn/alphabets/


使用字符

以此 emoji 字符为例:https://unicode-table.com/cn/1F634/
在这里插入图片描述


他的HTML 代码为: 😴。markdown 的解析器一般都会自动解析 html,在下方输入这个代码,就会出现:
😴


Python 代码中 编解码

在python3中,字符串有两种形式:str和bytes,两者区别如下:

  • unicode string(str类型):以Unicode code points 形式存储(人认识的形式)
    python3中所定义的所有字符串都是 unicode string类型,使用 type 和 isinstance 可以判别
  • byte string(bytes类型):以byte形式存储(机器认识的形式)

创建一个txt 文件,复制一个 emoji 表情进去
在这里插入图片描述


file_path = '/Users/xx/Desktop/a.txt'

a = open(file_path).read() 
print(type(a), a) # <class 'str'> 😴

# 编码 encode:字符串 --> 字节
b = a.encode('utf-8')
print(type(b), b) # <class 'bytes'> b'\xf0\x9f\x98\xb4'

c = '😴' # <class 'str'> 😴
# unicode 编码
g = c.encode('unicode_escape') #  b'\\U0001f634'

h = g.decode('unicode_escape') # <class 'str'> 😴
i = g.decode('utf-8') # <class 'str'> \U0001f634

d = b'\xf0\x9f\x98\xb4' # <class 'bytes'> b'\xf0\x9f\x98\xb4'
 
# 编码decode:字节 -->  字符串
e = d.decode('utf-8')  # <class 'str'> 😴
f = str(d,encoding='utf-8') 


正则去除 emoji

https://unicode-table.com/cn/emoji/


import re 

myre = re.compile(u'['
    u'\U0001F300-\U0001F64F'
    u'\U0001F680-\U0001F6FF'
    u'\u2600-\u26FF\u2700-\u27BF]+', 
    re.UNICODE)

text1 = '😴 haha 😅'
text2 = 'Some example text with a sleepy face: \U0001f62a'

print(myre.sub('', text1)) #  haha 
print(myre.sub('', text2)) # Some example text with a sleepy face: 



使用 emoji 包

https://pypi.org/project/emoji/



import emoji

def remove_emoji(text):
    return emoji.get_emoji_regexp().sub(u'', text)

Unicode 分布

  • 0000—007F 基本拉丁字母
  • 0080—00FF 拉丁文补充1
  • 0100—017F 拉丁文扩展A
  • 0180—024F 拉丁文扩展B
  • 0250—02AF 国际音标扩展
  • 02B0—02FF 占位修饰符号
  • 0300—036F 结合附加符号
  • 0370—03FF 希腊字母及科普特字母
  • 0400—04FF 西里尔字母
  • 0500—052F 西里尔字母补充
  • 0530—058F 亚美尼亚字母
  • 0590—05FF 希伯来文
  • 0600—06FF 阿拉伯文
  • 0700—074F 叙利亚文
  • 0750—077F 阿拉伯文补充
  • 0780—07BF 它拿字母
  • 07C0—07FF 西非书面语言
  • 0800—083F 撒玛利亚字母
  • 0840—085F Mandaic
  • 0860—086F Syriac Supplement
  • 08A0—08FF 阿拉伯语扩展
  • 0900—097F 天城文
  • 0980—09FF 孟加拉文
  • 0A00—0A7F 果鲁穆奇字母
  • 0A80—0AFF 古吉拉特文
  • 0B00—0B7F 奥里亚文
  • 0B80—0BFF 泰米尔文
  • 0C00—0C7F 泰卢固文
  • 0C80—0CFF 卡纳达文
  • 0D00—0D7F 马拉雅拉姆文
  • 0D80—0DFF 僧伽罗文
  • 0E00—0E7F 泰文
  • 0E80—0EFF 老挝文
  • 0F00—0FFF 藏文
  • 1000—109F 缅甸文
  • 10A0—10FF 格鲁吉亚字母
  • 1100—11FF 谚文字母
  • 1200—137F 埃塞俄比亚语
  • 1380—139F 埃塞俄比亚语补充
  • 13A0—13FF 切罗基字母
  • 1400—167F 统一加拿大原住民音节文字
  • 1680—169F 欧甘字母
  • 16A0—16FF 卢恩字母
  • 1700—171F 他加禄字母
  • 1720—173F 哈努诺文
  • 1740—175F 布迪文
  • 1760—177F 塔格巴努亚文
  • 1780—17FF 高棉文
  • 1800—18AF 蒙古文
  • 18B0—18FF 统一加拿大原住民音节文字扩展
  • 1900—194F 林布文
  • 1950—197F 德宏傣文
  • 1980—19DF 新傣仂文
  • 19E0—19FF 高棉文符号
  • 1A00—1A1F 布吉文
  • 1A20—1AAF 老傣文
  • 1AB0—1AFF Combining Diacritical Marks Extended
  • 1B00—1B7F 巴厘字母
  • 1B80—1BBF 巽他字母
  • 1BC0—1BFF 巴塔克文
  • 1C00—1C4F 雷布查字母
  • 1C50—1C7F Ol-Chiki
  • 1C80—1C8F Cyrillic Extended C
  • 1C90—1CBF Georgian Extended
  • 1CC0—1CCF 巽他字母补充
  • 1CD0—1CFF 吠陀梵文
  • 1D00—1D7F 语音学扩展
  • 1D80—1DBF 语音学扩展补充
  • 1DC0—1DFF 结合附加符号补充
  • 1E00—1EFF 拉丁文扩展附加
  • 1F00—1FFF 希腊语扩展
  • 2000—206F 常用标点
  • 2070—209F 上标及下标
  • 20A0—20CF 货币符号
  • 20D0—20FF 组合用记号
  • 2100—214F 字母式符号
  • 2150—218F 数字形式
  • 2190—21FF 箭头
  • 2200—22FF 数学运算符
  • 2300—23FF 杂项工业符号
  • 2400—243F 控制图片
  • 2440—245F 光学识别符
  • 2460—24FF 带圈或括号的字母数字
  • 2500—257F 制表符
  • 2580—259F 方块元素
  • 25A0—25FF 几何图形
  • 2600—26FF 杂项符号
  • 2700—27BF 印刷符号
  • 27C0—27EF 杂项数学符号A
  • 27F0—27FF 追加箭头A
  • 2800—28FF 盲文点字模型
  • 2900—297F 追加箭头B
  • 2980—29FF 杂项数学符号B
  • 2A00—2AFF 追加数学运算符
  • 2B00—2BFF 杂项符号和箭头
  • 2C00—2C5F 格拉哥里字母
  • 2C60—2C7F 拉丁文扩展C
  • 2C80—2CFF 科普特字母
  • 2D00—2D2F 格鲁吉亚字母补充
  • 2D30—2D7F 提非纳文
  • 2D80—2DDF 埃塞俄比亚语扩展
  • 2DE0—2DFF 西里尔字母扩展
  • 2E00—2E7F 追加标点
  • 2E80—2EFF 中日韩部首补充
  • 2F00—2FDF 康熙部首
  • 2FF0—2FFF 表意文字描述符
  • 3000—303F 中日韩符号和标点
  • 3040—309F 日文平假名
  • 30A0—30FF 日文片假名
  • 3100—312F 注音字母
  • 3130—318F 谚文兼容字母
  • 3190—319F 象形字注释标志
  • 31A0—31BF 注音字母扩展
  • 31C0—31EF 中日韩笔画
  • 31F0—31FF 日文片假名语音扩展
  • 3200—32FF 带圈中日韩字母和月份
  • 3300—33FF 中日韩字符集兼容
  • 3400—4DBF 中日韩统一表意文字扩展A
  • 4DC0—4DFF 易经六十四卦符号
  • 4E00—9FFF 中日韩统一表意文字
  • A000—A48F 彝文音节
  • A490—A4CF 彝文字根
  • A4D0—A4FF Lisu
  • A500—A63F 老傈僳文
  • A640—A69F 西里尔字母扩展B
  • A6A0—A6FF 巴姆穆语
  • A700—A71F 声调修饰字母
  • A720—A7FF 拉丁文扩展D
  • A800—A82F 锡尔赫特文
  • A830—A83F 印第安数字
  • A840—A87F 八思巴文
  • A880—A8DF 索拉什特拉
  • A8E0—A8FF 天城文扩展
  • A900—A92F 克耶字母
  • A930—A95F 勒姜语
  • A960—A97F 谚文字母扩展A
  • A980—A9DF 爪哇语
  • A9E0—A9FF Myanmar Extended-B
  • AA00—AA5F 鞑靼文
  • AA60—AA7F 缅甸语扩展
  • AA80—AADF 越南傣文
  • AAE0—AAFF 曼尼普尔文扩展
  • AB00—AB2F 埃塞俄比亚文
  • AB30—AB6F Latin Extended-E
  • AB70—ABBF Cherokee Supplement
  • ABC0—ABFF 曼尼普尔文
  • AC00—D7AF 谚文音节
  • D7B0—D7FF Hangul Jamo Extended-B
  • D800—DB7F 代理对高位字
  • DB80—DBFF 代理对私用区高位字
  • DC00—DFFF 代理对低位字
  • E000—F8FF 私用区
  • F900—FAFF 中日韩兼容表意文字
  • FB00—FB4F 字母表达形式(拉丁字母连字、亚美尼亚字母连字、希伯来文表现形式)
  • FB50—FDFF 阿拉伯文表达形式A
  • FE00—FE0F 异体字选择符
  • FE10—FE1F 竖排形式
  • FE20—FE2F 组合用半符号
  • FE30—FE4F 中日韩兼容形式
  • FE50—FE6F 小写变体形式
  • FE70—FEFF 阿拉伯文表达形式B
  • FF00—FFEF 半角及全角形式
  • FFF0—FFFF 特殊
  • 10000—1007F Linear B Syllabary
  • 10080—100FF Linear B Ideograms
  • 10100—1013F Aegean Numbers
  • 10140—1018F Ancient Greek Numbers
  • 10190—101CF Ancient Symbols
  • 101D0—101FF Phaistos Disc
  • 10280—1029F Lycian
  • 102A0—102DF Carian
  • 102E0—102FF Coptic Epact Numbers
  • 10300—1032F Old Italic
  • 10330—1034F Gothic
  • 10350—1037F Old Permic
  • 10380—1039F Ugaritic
  • 103A0—103DF Old Persian
  • 10400—1044F Deseret
  • 10450—1047F Shavian
  • 10480—104AF Osmanya
  • 104B0—104FF Osage
  • 10500—1052F Elbasan
  • 10530—1056F Caucasian Albanian
  • 10600—1077F Linear A
  • 10800—1083F Cypriot Syllabary
  • 10840—1085F Imperial Aramaic
  • 10860—1087F Palmyrene
  • 10880—108AF Nabataean
  • 108E0—108FF Hatran
  • 10900—1091F Phoenician
  • 10920—1093F Lydian
  • 10980—1099F Meroitic Hieroglyphs
  • 109A0—109FF Meroitic Cursive
  • 10A00—10A5F Kharoshthi
  • 10A60—10A7F Old South Arabian
  • 10A80—10A9F Old North Arabian
  • 10AC0—10AFF Manichaean
  • 10B00—10B3F Avestan
  • 10B40—10B5F Inscriptional Parthian
  • 10B60—10B7F Inscriptional Pahlavi
  • 10B80—10BAF Psalter Pahlavi
  • 10C00—10C4F Old Turkic
  • 10C80—10CFF Old Hungarian
  • 10D00—10D3F Hanifi Rohingya
  • 10E60—10E7F Rumi Numeral Symbols
  • 10E80—10EBF Yezidi
  • 10F00—10F2F Old Sogdian
  • 10F30—10F6F Sogdian
  • 10FB0—10FDF Chorasmian
  • 10FE0—10FFF Elymaic
  • 11000—1107F Brahmi
  • 11080—110CF Kaithi
  • 110D0—110FF Sora Sompeng
  • 11100—1114F Chakma
  • 11150—1117F Mahajani
  • 11180—111DF Sharada
  • 111E0—111FF Sinhala Archaic Numbers
  • 11200—1124F Khojki
  • 11280—112AF Multani
  • 112B0—112FF Khudawadi
  • 11300—1137F Grantha
  • 11400—1147F Newa
  • 11480—114DF Tirhuta
  • 11580—115FF Siddham
  • 11600—1165F Modi
  • 11660—1167F Mongolian Supplement
  • 11680—116CF Takri
  • 11700—1173F Ahom
  • 11800—1184F Dogra
  • 118A0—118FF Warang Citi
  • 11900—1195F Dives Akuru
  • 119A0—119FF Nandinagari
  • 11A00—11A4F Zanabazar Square
  • 11A50—11AAF Soyombo
  • 11AC0—11AFF Pau Cin Hau
  • 11C00—11C6F Bhaiksuki
  • 11C70—11CBF Marchen
  • 11D00—11D5F Masaram Gondi
  • 11D60—11DAF Gunjala Gondi
  • 11EE0—11EFF Makasar
  • 11FB0—11FBF Lisu Supplement
  • 11FC0—11FFF Tamil Supplement
  • 12000—123FF Cuneiform
  • 12400—1247F Cuneiform Numbers and Punctuation
  • 12480—1254F Early Dynastic Cuneiform
  • 13000—1342F Egyptian Hieroglyphs
  • 13430—1343F Egyptian Hieroglyph Format Controls
  • 14400—1467F Anatolian Hieroglyphs
  • 16800—16A3F Bamum Supplement
  • 16A40—16A6F Mro
  • 16AD0—16AFF Bassa Vah
  • 16B00—16B8F Pahawh Hmong
  • 16E40—16E9F Medefaidrin
  • 16F00—16F9F Miao
  • 16FE0—16FFF Ideographic Symbols and Punctuation
  • 17000—187FF Tangut
  • 18800—18AFF Tangut Components
  • 18B00—18CFF Khitan Small Script
  • 18D00—18D8F Tangut Supplement
  • 1B000—1B0FF Kana Supplement
  • 1B100—1B12F Kana Extended-A
  • 1B130—1B16F Small Kana Extension
  • 1B170—1B2FF Nushu
  • 1BC00—1BC9F Duployan
  • 1BCA0—1BCAF Shorthand Format Controls
  • 1D000—1D0FF Byzantine Musical Symbols
  • 1D100—1D1FF Musical Symbols
  • 1D200—1D24F Ancient Greek Musical Notation
  • 1D2E0—1D2FF Mayan Numerals
  • 1D300—1D35F Tai Xuan Jing Symbols
  • 1D360—1D37F Counting Rod Numerals
  • 1D400—1D7FF Mathematical Alphanumeric Symbols
  • 1D800—1DAAF Sutton SignWriting
  • 1E000—1E02F Glagolitic Supplement
  • 1E100—1E14F Nyiakeng Puachue Hmong
  • 1E2C0—1E2FF Wancho
  • 1E800—1E8DF Mende Kikakui
  • 1E900—1E95F Adlam
  • 1EC70—1ECBF Indic Siyaq Numbers
  • 1ED00—1ED4F Ottoman Siyaq Numbers
  • 1EE00—1EEFF Arabic Mathematical Alphabetic Symbols
  • 1F000—1F02F Mahjong Tiles
  • 1F030—1F09F Domino Tiles
  • 1F0A0—1F0FF Playing Cards
  • 1F100—1F1FF Enclosed Alphanumeric Supplement
  • 1F200—1F2FF Enclosed Ideographic Supplement
  • 1F300—1F5FF Miscellaneous Symbols and Pictographs
  • 1F600—1F64F Emoticons (Emoji)
  • 1F650—1F67F Ornamental Dingbats
  • 1F680—1F6FF Transport and Map Symbols
  • 1F700—1F77F Alchemical Symbols
  • 1F780—1F7FF Geometric Shapes Extended
  • 1F800—1F8FF Supplemental Arrows-C
  • 1F900—1F9FF Supplemental Symbols and Pictographs
  • 1FA00—1FA6F Chess Symbols
  • 1FA70—1FAFF Symbols and Pictographs Extended-A
  • 1FB00—1FBFF Symbols for Legacy Computing
  • 20000—2A6DF CJK Unified Ideographs Extension B
  • 2A700—2B73F CJK Unified Ideographs Extension C
  • 2B740—2B81F CJK Unified Ideographs Extension D
  • 2B820—2CEAF CJK Unified Ideographs Extension E
  • 2CEB0—2EBEF CJK Unified Ideographs Extension F
  • 2F800—2FA1F CJK Compatibility Ideographs Supplement
  • 30000—3134F CJK Unified Ideographs Extension G
  • E0000—E007F Tags
  • E0100—E01EF Variation Selectors Supplement
  • F0000—FFFFF Supplementary Private Use Area-A
  • 100000—10FFFF Supplementary Private Use Area-B

举报

相关推荐

0 条评论