系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
tang.zhe
- 帖子: 1505
- 注册时间: 2010-07-15 13:31
#16
帖子
由 tang.zhe » 2016-12-20 16:40
代码: 全选
tz@utz:~$ echo "\u5317\u4eacabc" | perl -MEncode -pe 's/\\u([0-9a-fA-F]{4})/encode("utf8", pack("U", hex($1)))/eg'
北京abc
tz@utz:~$
哪里有北京二字,怎么就替换了呢?一头雾水。
关闭后对系统没影响吧?
-
d313206775
- 帖子: 15
- 注册时间: 2016-12-12 14:30
- 系统: ubuntu 14.04
#17
帖子
由 d313206775 » 2016-12-20 16:46
tang.zhe,
在终端输入 echo "\u5317\u4eacabc" | perl -MEncode -pe 's/\\u([0-9a-fA-F]{4})/encode("utf8", pack("U", hex($1)))/eg'
-
oneleaf
- 论坛管理员
- 帖子: 10441
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
#19
帖子
由 oneleaf » 2016-12-21 15:37
python2默认是ascii编码输出文件的,所以对于Unicode会按照 \uXXXXX 的格式写入。
如果希望直接输出为中文,需要如下写入文件:
代码: 全选
import codecs
f = codecs.open('xxx.log','a','utf-8')
-
d313206775
- 帖子: 15
- 注册时间: 2016-12-12 14:30
- 系统: ubuntu 14.04
#20
帖子
由 d313206775 » 2016-12-23 14:28
此楼结贴,感谢大家的帮助。
现进行总结:
是我自己想当然地看错了我获取到的字符串。
我真实获取到的字符串类似于:
代码: 全选
a = 'Hour China \\u795e\\u5947\\u7684\\u4e2d\\u56fd'
这样,需进行以下操作:
代码: 全选
temp = a.replace('\u','u')
mystr = temp.decode('unicode-escape')
如果是以下类型的字符串:
代码: 全选
a =‘Hour China \u795e\u5947\u7684\u4e2d\u56fd’
则只需要做
代码: 全选
decode('unicode-escape')
转换即可。