python非法字符怎么处理_如何彻底清除python中的非法字符字符串?

我的程序有一个特性,用户可以上传一个csv文件,我的程序通过它作为输入。我有一个用户抱怨他的输入出现错误。该错误是由于存在编码错误的非法字符造成的。字符如下:�

有时它看起来像一颗带“?”的钻石在中间,有时它看起来像一个带有“?”的双钻石在中间,有时显示为“\xa0”,有时显示为“\xa0\xa0”。

在我的程序中,如果我这样做:print str_with_weird_char

这条线会出现在我的终端和钻石“?”代替了那个奇怪的角色。如果我将该字符串复制并粘贴到ipython中,它将退出并显示以下消息:In [1]: g="blah��blah"

WARNING:

********

You or a %run:ed script called sys.stdin.close() or sys.stdout.close()!

Exiting IPython!

注意钻石“?”现在是双倍了。出于某种原因,复制+粘贴使其加倍。。。

在django回溯页面中,它看起来是这样的:UnicodeDecodeError at /chris/import.html

('ascii', 'blah \xa0 BLAH', 14, 15, 'ordinal not in range(128)')

让我不舒服的是,如果这个字符串不抛出异常,我就无法处理它。我试过unicode(),str(),encode(),encode(“utf-8”),不管它抛出什么错误。

我该怎么做才能让这东西成为一根有效的弦?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值