1. 程式人生 > >Python與PyCharm的中文顯示問題

Python與PyCharm的中文顯示問題

最近在編寫Python爬蟲,用的Python2.7中文在IDE裡的顯示非常蛋疼,

我用的IDE是PyCharm 2018.1...

爬取的資料經常無法顯示出中文,(估計一大部分是print語句的鍋..) 想特意總結一下:

1. 每個.py檔案開頭加

# -*- coding:utf-8 -*-


這樣就可以在.py檔案中出現中文了, 例如中文註釋,注意這個宣告和print內容以及檔案輸出沒有任何關係

2. 爬下來的JSON 解析後一直print成類似'\xe8\xbc\xaa\xe3'的unicode碼

試了很多方法都沒用,特別奇怪的時候我發掘可能是解析的時候添加了轉義字元.... 比如'\xe8'是按照'\\xe8'存的...
所以用string_escape試了一下, 果然可以順利輸出了..解決了一大問題

print(str(painterMap).decode('string_escape'))


3. PyCharm設定

為了讓pycharm輸出顯示正確中文,File-> Settings -> File encoding -> utf-8
這裡我的project encoding 設定為system default (GBK)貌似也可以的..

4. 中文亂碼

遇到亂碼的情況95%是編碼問題.. 用decode()/encode()解決...要具體爬取下來資料的編碼具體分析

    str1 = u'你好啊'  # unicode Chinese Chars
    str2 = str1.encode('gb2312')  # encode str1 with gbk coding
    str3 = str1.encode('utf-8')  # encode str1 with utf-8 coding
    str4 = str2.decode('gb2312')  # decode str1 with gbk coding
    print(str1)
    print(str2)
    print(str3)
    print(str4)


5.  中文路徑

在輸入中文路徑獲取檔案的時候會告訴我檔案不存在...

例如: D:\python\年終總結.docx

需要對路徑進行unicode加密成: (r'xxx' 表示強制不轉義)

path = unicode(r'D:\python\年終總結.docx', 'utf8')


或者直接用u'XXX':

file = open(u'D:\\python\\年終總結.docx', 'rb')


--------------------- 
作者:PerryXu_BIT 
來源:CSDN 
原文:https://blog.csdn.net/perry_x/article/details/80274714