使用python

时间:2015-09-12 14:51:39

标签: python python-3.x unicode

在python 3中识别unicode私用字符的正确方法是什么?模块unicodedata中没有明显的相关性,这使得查找字符名称和属性变得容易。

某些背景:unicodedata.name(),如果使用私人使用字符(例如,尝试ValueError),则会提供unicodedata.name("\uf026"),其中包含unicode字符的名称。但是空白字符(空间本身除外)以及可能的其他东西也会触发异常。那么,检测PUA字符的非黑客可靠方法是什么?

1 个答案:

答案 0 :(得分:6)

私人使用字符全部在Co general category中,由category() unicodedata中的>>> import unicodedata >>> def is_pua(c): ... return unicodedata.category(c) == 'Co' ... >>> is_pua(u'\uF026') True 返回:

U+E000

鉴于私人使用字符集永远不会更改的Unicode标准guarantees(不会添加或删除任何字符),它也很安全 - 编码three ranges

  • U+F8FFU+F0000
  • U+FFFFDU+100000
  • U+10FFFDapp.yaml