在 Python 中使用不常见的字符混合



我正在用Python进行文本分析,我正在查看一系列可追溯到6世纪到14世纪的爱尔兰语文本,这意味着在对单词列表进行排序时,我需要考虑一系列的拼写变化。

我想对一个列表进行排序,该列表考虑了不同时期字符(例如 fada、séimhiú 和 úru)的核心单词的不同语法形式,因此我的自定义字母表如下所示:

"a, á, b, ḃ, bh,mb, c, ċ, ch, gc, d, ḋ, dh, nd, e, é, f, ḟ, fh, bhf, g, ġ, gh, ng, h, i, í, l, m, ṁ, mh, n, o, ó, p, ṗ, ph, bp, r, rh, s, ṡ, sh, t, ṫ, th, ts, dt, u, ú, j, k, q, v, w, x, y, z">

我可能可以使用 Unicode 编码处理 fada(重音字母),例如 u'á',但我正在努力找到一种使用旧样式 úru(变音符号点)的方法?

有人有这种角色组合的经验吗?人们有没有一种共同的方式来处理这些角色?

目前,当我尝试与您'ḃ'一起使用变音符号时,我会收到以下错误:

Traceback (most recent call last):
File "csv_generator.py", line 44, in <module>
print u'ß©â'
File "C:UsersCharlieAnaconda2libencodingscp850.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'u1e03' in 
position 0: character maps to <undefined>   

如图所示的问题是打印代码页不支持的字符 (cp850)。 你可以很好地操作Unicode字符串...这只是显示问题。 Python 3.6+ 通过绕过代码页并使用 Windows Unicode API 进行打印来解决此问题:

Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print('u1e03')
ḃ

如果无法切换到更高版本的 Python,是否可以切换到支持 UTF-8 的 IDE? 从pywin32模块使用PythonWin的示例(我安装了Python 2.7)。

PythonWin 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32.
Portions Copyright 1994-2008 Mark Hammond - see 'Help/About PythonWin' for further copyright information.
>>> print(u'u1e03')
ḃ

最新更新