首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python curses.ascii依赖于语言环境吗?

问python curses.ascii依赖于语言环境吗?
EN

Stack Overflow用户
提问于 2008-11-30 12:18:19
回答 2查看 747关注 0票数 0

curses.ascii模块定义了一些很好的函数,例如,这些函数允许识别哪些字符是可打印的(curses.ascii.isprint(ch))。

但是,根据所使用的语言环境设置,可以打印不同的字符代码。例如,有某些波兰语字符:

代码语言:javascript
复制
>>> ord('a')
97
>>> ord('ą')
177
>>> 

我想知道,有没有比curses.ascii模块中使用的更好的方法来判断数字是否代表可打印字符:

代码语言:javascript
复制
def isprint(c): return _ctoi(c) >= 32 and _ctoi(c) <= 126

这是一种不友好的地方。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-11-30 12:31:09

如果将字符转换为unicode,则可以使用unicodedata:

代码语言:javascript
复制
>>> unicodedata.category(u'ą')[0] in 'LNPS'
True
票数 4
EN

Stack Overflow用户

发布于 2008-12-01 05:11:46

好吧,它被称为curses.ascii,所以使用ASCII码规则来处理可打印的内容并不奇怪。如果您使用的是ISO 8位代码,或者您正在使用已知的代码页进行操作,那么您将需要与实际代码及其显示内容相对应的规则。

我认为使用unicode字符和标准Unicode分类是很好的。这可能无法正确处理咒语和控制台排列实际显示的内容。

还需要考虑应用程序可接受和不可接受的内容,即使是可显示的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/328793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档