請幫忙。字符編碼故障
我正在從意大利twitterers下載tweet來進行後續分析。 一旦dowloaded,我將它們存儲在一個python數據框架,然後我將它們寫入一個文件。
在文件中寫入文件時,像意大利語言中存在的「è」這樣的特殊字符會轉換爲像X8/XE這樣的字符。
我試過了utf8,Latin1或ISO-8859-1這幾種編碼,但問題依然存在。
dataframe的每一行都是一個用戶,它攜帶不同的信息,如名稱,屏幕,名稱....和描述,這是我遇到問題的字段。
這裏不用我用它來將用戶添加到現有的數據幀中的臺詞:
b=pd.DataFrame(np.array([[user.id,
user.created_at,
user.lang.encode('utf-8'),
user.screen_name.encode('utf-8'),
user.name.encode('utf-8'),
user.location.encode('utf-8'),
user.description.encode('utf-8'),
user.followers_count,
user.profile_image_url_https.encode('utf-8')]]), columns=col).append(b, ignore_index=True)
這是我寫的文件中的信息
b.to_csv(filename, encoding="utf-8")
單從下載後的方式Twitter,在數據框I中例如可以閱讀:
「La vitaèun'opportunità... coglila」
,但在文件中它被轉換在:
B 「津樂匯\ XC3 \ xa8 un'opportunit \ XC3 \ XA0 ... coglila」
我應該怎麼辦將其重新轉換回原始字符串?
你怎麼想將數據保存在文件中?你在使用二進制模式嗎? – user312016
它將字符串轉換爲所謂的「二進制字符串」。你可以通過調用'b「將它們轉換爲普通的字符串。」La vita \ xc3 \ xa8 un'opportunit \ xc3 \ xa0 ... coglila「.decode('utf-8')'。 –
如果您打印它,您應該能正確看到字符串。 – sirfz