Python には、Unicode でエンコードされたテキストがあります。このテキストには、'x' に変換したい非改行スペースが含まれています。非改行スペースは と同じchr(160)
です。次のコードがあります。これは、Localhost を使用して Eclipse 経由で Django として実行するとうまく機能します。エラーはなく、非改行スペースは変換されません。
my_text = u"hello"
my_new_text = my_text.replace(chr(160), "x")
ただし、他の方法 (Python コマンド ライン、Eclipse ではなく runserver 経由の Django) で実行すると、エラーが発生します。
'ascii' codec can't decode byte 0xa0 in position 0: ordinal not in range(128)
Unicode (my_text) を Unicode ではないものと比較しようとしているため、このエラーは理にかなっていると思います。私の質問は次のとおりです。
- Unicode でない場合
chr(160)
、それは何ですか? - Eclipse から実行すると、なぜこれが機能するのですか? これを理解すると、コードの他の部分を変更する必要があるかどうかを判断するのに役立ちます。私はEclipseから自分のコードをテストしています。
- (最も重要) 非改行スペースを削除するという当初の問題を解決するにはどうすればよいですか?
my_text
間違いなくUnicodeになるでしょう。