【问题标题】:How to replace a character in a string with a non ascii character in python?如何用python中的非ascii字符替换字符串中的字符?
【发布时间】:2015-02-27 09:55:25
【问题描述】:

我想将数字符号 (#) 替换为类似于音乐符号 (♯) 的字符。我尝试了以下行但没有用。

res['n'].replace('#', '♯')

我也试过这些,也没有正常工作。

res['n'].replace('#', u'♯')
res['n'].replace('#', '\xe2')

有人知道情况吗?

【问题讨论】:

  • 它“没有用”。错误是什么?它对我来说非常好。 res 是什么?
  • 第一个适合我。
  • 也许您期望replace() 修改字符串? replace() 不会那样做;它创建一个新字符串。你需要写res['n'] = res['n'].replace('#', '♯')
  • ♯​​ == \xe2\x99\xaf,不只是 \xe2
  • 好点@ceremcem:另外,'\xe2\x99\xaf'.decode('utf-8') == u'\u266f'

标签: python string non-ascii-characters


【解决方案1】:
import re
text = ' '
re.sub(' ', '\x00', text)

你为什么不用这个?

【讨论】:

  • 为什么你认为这甚至与这个问题有模糊的关系?
【解决方案2】:
res="He##o"
res=res.replace("#","♯")
print res

o/t He♯♯o

【讨论】:

    【解决方案3】:

    Replace 返回改变后的字符串,字符串本身不能改变。试试

    res['n'] = res['n'].replace('#', '♯')
    

    【讨论】:

      猜你喜欢
      • 2017-04-13
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 2019-10-15
      • 1970-01-01
      相关资源
      最近更新 更多