【问题标题】:Python 3 unicode annoyancesPython 3 unicode 的烦恼
【发布时间】:2014-01-16 18:40:50
【问题描述】:

我有一个从列表创建的字符串。当我尝试将字符串作为电子邮件正文发送时,出现此错误:

UnicodeEncodeError:“ascii”编解码器无法在位置 1242 编码字符“\u2013”​​:序数不在范围内 (128)

这是取自网页的“en”字符或破折号。

所以我尝试使用此代码来解决问题:

    message = str(all_items)
    message.replace('\u2013','-')

问题是,那行不通。请你能告诉我我在这里做错了什么吗?

【问题讨论】:

  • 我们不知道。您忘记显示用于撰写电子邮件的代码。
  • 你能说明字符串是如何创建的吗?
  • 该字符串是从网页中提取的字典。

标签: python string python-3.x unicode


【解决方案1】:

您的意思是就地替换字符串吗?

str.replace 不会就地更改字符串,而是返回替换后的字符串。

你需要将str.replace的结果赋值回去:

message = message.replace('\u2013', '-')

【讨论】:

    猜你喜欢
    • 2017-11-21
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    相关资源
    最近更新 更多