【问题标题】:Python not recognizing Unicode in a text filePython无法识别文本文件中的Unicode
【发布时间】:2016-11-23 16:28:43
【问题描述】:

我尝试读取包含 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'}

【问题讨论】:

    标签: python-2.7


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 2021-12-10
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多