2016-11-22 12 views
0

Unicodeテキストを持つログファイルを読み込もうとしましたが、韓国語のエンコードされた文字列は印刷できませんでした。私は何が間違っていたのか分かりますPythonはテキストファイル内で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 

' 偽

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

성과#韓国語

mylog.log:私のテキストがUnicodeとして認識されていなかったようです、

私はPythonのコンソールに似たコードを実行すると、私は正しい結果を得ました:

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'} 

答えて

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 
関連する問題