Python无法识别文本文件中的Unicode

时间:2016-11-22 11:51:17

标签: python-2.7

我尝试读取具有Unicode文本的日志文件,但无法打印韩语单词的编码字符串。我会知道出了什么问题?

代码如下:

# -*- coding: utf-8 -*-
import yaml

path = "./mylog.log"
mylog = open( path, "r")
for i in mylog:
    message = i.split("app[web.1]:")[1]
    message = yaml.load(message)  # text -> dict
    print message
    mytext = message["u'content'"]
    print mytext.encode('utf-8')
    print isinstance(mytext, unicode)

代码的结果如下:

{"u'content'": "u'\\uc131\\uacfc'", "u'type'": "u'text'", "u'user_key'": "u'ADAgPNQ04'"}

u'\uc131\uacfc'

{"u'content'": "u'\\uc131\\uacfc'", "u'type'": "u'text'", "u'user_key'": "u'ADAgPNQ04'"}

u'\uc131\uacfc

” 假

似乎我的文字未被识别为Unicode,

如果我在Python控制台中运行类似的代码,我得到了正确的结果:

In[1]: text = u'\uc131\uacfc'   
In[2]: print text

성과#一个韩语单词

mylog.log:

2016-11-22T07:35:30.197270+00:00 app[web.1]: {u'content': u'\uc131\uacfc', u'user_key': u'ADAgPNQ04', u'type': u'text'}

2016-11-22T09:55:09.994257+00:00 app[web.1]: {u'content': u'\uc131\uacfc', u'user_key': u'ADAgPNQ04', u'type': u'text'}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。效果很好。

mylog = codecs.open(path,"r" ,encoding='utf-8')
for i in mylog:
    message = i.split("app[web.1]:")[1]
    message = message .decode('unicode_escape')
    mytext = yaml.load(message )  
    mytext = mytext["u'content'"]
    print mytext