python的emoji转换(unicode emoji<=>carrier的emoji)库(emoji4unicode项目包装库)
e4u的Python项目详细描述
e4u库是emoji4unicode的捆绑库
它用于处理Unicode表情符号和Carrier的表情符号。主要功能是
- 将Unicode表情符号转换为运营商的表情符号
- 将运营商的表情符号转换为Unicode表情符号
这个库可以处理的unicode emoji在http://www.unicode.org/~scherer/emoji4unicode/snapshot/full.html
这个库引用了emoji4unicode和django-bpmobile的源代码
安装
sudo pip install e4u
或:
sudo pip install git+git://github.com/lambdalisue/e4u.git#egg=e4u
必需(自动安装)
- 美化组(用于分析运营商的网站和emoji4unicode.xml)
如何使用
这个库使用emoji4unicode.xml创建emoji的转换表。 所以您必须从文件系统或Internet加载它。e4u.load()方法 从google代码的主干url加载并推荐。如果无法连接 要上网,请使用e4u.load(file=r"some/path/emoji4unicode.xml")insted。这个 emoji4unicode.xml位于http://code.google.com/p/emoji4unicode/source/browse/trunk/data/emoji4unicode.xml
加载emoji4unicode.xml后,可以使用e4u.translate()方法翻译emoji。 要将carrier的emoji转换为unicode emoji,请使用^{tt8}这样的方法$ 要将Unicode表情符号转换为Carrier的表情符号,请使用contents = e4u.translate(contents, reverse=True, **e4u.DOCOMO_TRANSLATE_PROFILE)
下面的代码描述了如何使用库。
import e4u e4u.load() carrier_contents = "\xF8\x9F \xF8\xA0 \xF8\xA1" # Sun, Cloud, Rain in DoCoMo emoji unicode_contents = u"\u2600 \u2601 \u2614" # Sun, Cloud, Rain in Unicode emoji # DoCoMo => Unicode contents = carrier_contents expected = unicode_contents # Translate emoji with DoCoMo profile (= {'carrier':'docomo', 'encoding':'cp932'}) result = e4u.translate(contents, **e4u.DOCOMO_TRANSLATE_PROFILE) assert isinstance(result, unicode) # return value is Unicode assert result == expected # Unicode => DoCoMo contents = unicode_contents expected = carrier_contents # Translate emoji with DoCoMo profile with reverse=True result = e4u.translate(contents, reverse=True, **e4u.DOCOMO_TRANSLATE_PROFILE) assert isinstance(result, unicode) # return value is Unicode assert result.encode('cp932', 'replace') == expected
支持的运营商
目前只支持DoCoMo、KDDI、软银和谷歌。您可以传递给的承运人名称 e4u.translate()方法是
- 文本-到文本
- docomo_img-使用docomo emoji标记img
- kddi_img-使用kddi emoji标记img(建议用于不支持emoji的PC或其他设备)
- 软银img-使用软银emoji的img标签(不推荐,软银可能拒绝外部访问,因此不起作用)
- 谷歌到gmail的表情符号。我不知道怎么用,但以防万一。
- 多科莫-多科莫·埃莫吉。sjis格式(解码为unicode)
- kddi-到kddi emoji。sjis格式(解码为unicode)
- 软银-软银表情符号。Unicode格式
方法
- e4u.load(filename=None, url=r"http://emoji4unicode.googlecode.com/svn/trunk/data/emoji4unicode.xml", loader_class=loader.Loader)
- 加载emoji4unicode.xml并生成内部转换表。这种方法不会影响两次。使用e4u.reload()insted重新加载库。
- e4u.reload(filename=None, url=r"http://emoji4unicode.googlecode.com/svn/trunk/data/emoji4unicode.xml", loader_class=loader.Loader)
- 强制重新加载emoji4unicode.xml,请使用e4u.load()方法insted以供一般使用。
- e4u.has_loaded()
如果e4u.load()方法已调用,则返回true。使用e4u.load()方法insted以供一般使用。不要像下面这样:
# stupid way import e4u if not e4u.has_loaded(): e4u.reload() # smarter import e4u e4u.load()
- e4u.get(id)
- 获取id的emoji符号实例。该id在http://www.unicode.org/~scherer/emoji4unicode/snapshot/full.html中描述 从“e-000”的ID(如“000”)中删除“e-”,并以Unicode格式传递。
- e4u.translate(source, carrier, reverse=False, encoding=None)
- 将源代码中包含的Unicode表情符号转换为运营商的表情符号或相反的表情符号。
- e4u.translate_char(source_char, carrier, reverse=False, encoding=None)
- 将Unicode表情符号转换为Carrier的表情符号。比^{tt7}快$ 方法,但无法处理文本。用于字母转换。