项目中执行到代码如:
x = x.encode(encoding)
报错:'latin-1' codec can't encode character u'\u202d' in position 0: ordinal not in range(256)。
可见是编码问题。报错信息显示这个x字符串中含有异常的字符u'\u202d',奇怪的是这个x对应到我代码中只是一个简短的数字而已,此处为mem后的数字98304,并没有u'\u202d'字符,奇怪了...
mem: 98304
于是查了下原来u'\u202d'是unicode不可见字符。除了这个'\u200b',还有两个不可见的字符:'\u200c'和'\u200b'。
在Linux终端中”/u200b”为不可见字符。为了显示出内容中加入的不可见字符,可将内容保存到文本中,利用less命令打开文本。或者使用vim打开文件,也可显示出不可见字符。