在 Python 中,我有一个 Unicode 编码的文本。此文本包含不间断空格,我想将其转换为“x”。不间断空格等于chr(160)
。我有以下代码,当我使用 Localhost 通过 Eclipse 作为 Django 运行它时效果很好。没有错误和任何不间断的空格都会被转换。
my_text = u"hello"
my_new_text = my_text.replace(chr(160), "x")
但是,当我以任何其他方式运行它时(Python 命令行,Django 通过 runserver 而不是 Eclipse)我得到一个错误:
'ascii' codec can't decode byte 0xa0 in position 0: ordinal not in range(128)
我想这个错误是有道理的,因为它试图将 Unicode (my_text) 与非 Unicode 的东西进行比较。我的问题是:
- 如果
chr(160)
不是 Unicode,那是什么? - 当我从 Eclipse 运行它时,它是如何工作的?了解这一点将帮助我确定是否需要更改代码的其他部分。我一直在从 Eclipse 测试我的代码。
- (最重要)如何解决我原来的删除不间断空格的问题?
my_text
肯定会是Unicode。