python unicodedata库的C ++实现

时间:2019-03-15 17:11:20

标签: c++ python-module-unicodedata

这里的新用户,请保持柔和。

我们希望在C ++中实现一段python代码,但是它涉及一些称为unicodedata的复杂unicode库,尤其是此函数

unicodedata.category('A')  # 'L'etter, 'u'ppercase
'Lu'

有什么机会可以用C ++轻松实现吗?假设我们要在在线tensorflow模型服务的上下文中这样做,将编译后的python代码嵌入c ++是否值得?谢谢!

1 个答案:

答案 0 :(得分:1)

只需将此Python代码的输出粘贴到C ++源文件中即可:

import unicodedata

print('typedef enum {Cn, Cc, Cf, Co, Cs, Ll, Lm, Lo, Lt, Lu, Mc, Me, Mn, Nd, Nl, No, Pc, Pd, Pe, Pf, Pi, Po, Ps, Sc, Sk, Sm, So, Zl, Zp, Zs} CATEGORY_e;')
print('const CATEGORY_e CHAR_CATEGORIES[] = {%s};' % ', '.join(unicodedata.category(chr(codepoint)) for codepoint in range(0x110000)))

(如果您仍在使用Python 2.x而不是3.x,请将chr替换为unichr。)

您现在有了一个方便的Unicode字符类别查询表,可以在您的C ++程序中使用。