如何在保留指数值的同时隐含包含扩展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”。
最佳答案
好吧,首先要知道的是,没有一个“扩展ascii”。 Ascii已通过许多不同方式进行了扩展。快速测试表明您需要“ latin_1”或“ cp1252”。因此,首先,将其转换为unicode(一种完全存储任何字符的方式):
varUnit = varUnit.decode("latin_1")
编辑:如果只想在自己的应用程序中显示它,则应在此处停止并使用Unicode。
print varUnit
应该给您m³
。但是在这种情况下,旧版系统可能无法处理:然后,您需要将其简化为可以用纯ASCII表示的字符。最简单的方法是使用
unidecode
模块(可以使用pip或easy_install进行安装):from unidecode import unidecode
print unidecode(varUnit)