【发布时间】:2020-11-23 12:59:28
【问题描述】:
我在将 ascii 字符编码为 UTF-8 时遇到了一些问题,或者一个字符串没有接受编码。
import unicodecsv as csv
import re
import pyodbc
import sys
import unicodedata
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def remove_non_ascii_1(text):
text.encode('utf-8')
for i in text:
return ''.join(i for i in text if i=='£')
在 Python 2.7 中出现错误
SyntaxError: Non-ASCII character '\xc2' in file on line 16, but no encoding declared; see SyntaxError: Non-ASCII character '\xc2' in file.
使用 Unicode 替换
return ''.join(i for i in text if i=='\xc2')
错误是
UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
示例文本:
读取 csv 文件中的行
[u'06/11/2020', u'ABC', u'32154E', u'3214', u'DEF', u'Cash Purchase', u'Final', u'', u'20.00%', u'ABC', u'Sold From Pickup', u'New ', u'10.00%', u'0', u'15%', u'\xa3469.84', u'Jonathan Jerome', u'3', u'\xa3140.95', u'2%', u'\xa393.97', u'\xa39,396.83', u'', u'\xa35,638.00', u'30/06/2020', u'4', u'Boiler-Amended']
我想删除货币字段中的 \xa3 或 £。
【问题讨论】:
-
您可以添加包含问题的示例文本吗?
-
text.encode('utf-8')在您的代码中什么都不做,您必须存储结果。 -
您使用的是 Python 2.7 吗?如果是,你真的需要吗? Unicode 的管理一直是 Python 3 的一大改进...
标签: python python-2.7