【发布时间】:2019-04-29 01:48:58
【问题描述】:
我收到以下带有破折号“-”的错误
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 38: ordinal not in range(128)
我已尝试使用以下内容:skills.encode('utf-8') 但我仍然收到错误消息。下面是我尝试写入 csv 的代码。
writer.writerow([name.encode('utf-8'),
heading.encode('utf-8'),
location.encode('utf-8'),
education.encode('utf-8'),
summary,
currentRole,
allRoles,
companiesFollowed,
groups,
skills.encode('utf-8')])
【问题讨论】:
-
只有你能说出那个角色应该是什么。
-
字符是破折号
-
啊,不仅仅是普通的
-破折号,而是一个n-dash fileformat.info/info/unicode/char/2013/index.htm。是的,你不能用 ASCII 来表示它。你想在那里做什么? -
如果可能的话,只是一个普通的破折号。我不知道破折号和破折号之间的区别。
-
如果你使用 Python3,你会得到什么(你可以跳过
encodes)。如果你不这样做,你将不得不学习比你现在所知道的更多的关于 Unicode 以及 Unicode 代码点的含义的知识。我不知道有任何函数可以知道您希望 n-dash 成为连字符。您可以使用string.maketrans和str.translate进行自己的字符串替换,仅此而已。