删除保留tex的扩展Ascii

2024-09-30 22:14:29 发布

您现在位置:Python中文网/ 问答频道 /正文

在保持指数值的同时,如何隐藏包含扩展ascii的字符串来表示一个幂次的数字?例如,如果字符串是'm\xb3/h',表示立方米每小时,我想返回字符串'm3/h'。或“m\xb2”应返回“m2”。在

守则-

varUnit = 'm\xb3/h'
varUnit.decode('ascii', 'ignore').endcode('ascii')
print varUnit

返回'm/h',而需要'm3/h'。在


Tags: 字符串ascii数字m3ignoreprintdecode小时
2条回答

首先要知道的是没有一个“扩展ascii”。Ascii的扩展方式有很多种。快速测试表明你想要“拉丁语1”或“cp1252”。因此,首先,将其转换为unicode(一种存储任何字符的方法):

varUnit = varUnit.decode("latin_1")

编辑:如果您只想在您自己的应用程序中显示它,您应该在这里停止并使用Unicode。print varUnit应该给你{}。但传统系统可能无法处理,在这种情况下:

然后,您需要将其简化为可以用纯ASCII表示的字符。最简单的方法是使用unidecode模块(您可以使用pip或easy\u install安装它):

^{pr2}$

上标数字具有兼容性分解,因此可以执行以下操作:

>>> import unicodedata
>>> unicodedata.normalize('NFKC', 'm²')
'm2'

相关问题 更多 >