Windows下Pycharm執行命令列語句結果亂碼問題��Ȩ��Ӧ��

OSinooO發表於2018-06-15

今天在學習python多執行緒的時候遇到了一個問題

import subprocess

print('$ nslookup www.baidu.com')
r = subprocess.call(['nslookup', 'www.baidu.com'])
print('Exit code:', r)

"$ nslookup www.baidu.com"語句相當於在cmd中輸入:nslookup www.baidu.com命令

然而得到的結果是亂碼的:

$ nslookup www.baidu.com
��Ȩ��Ӧ��:
������:  UnKnown
Address:  172.20.10.1


����:    www.a.shifen.com
Addresses:  180.97.33.108
  180.97.33.107
Aliases:  www.baidu.com


Exit code: 0


在檔案開頭加了 # -*- coding:utf-8 -*- 也沒用

後來查了百度,瞭解到cmd預設編碼是GBK,而Pycharm預設編碼是UTF-8...

那我把Pycharm編碼改成GBK應該ok的,操作如下:



重新執行後就正常了:

$ nslookup www.baidu.com
非權威應答:
伺服器:  UnKnown          (PS:這裡UnKnown是因為我現在用的手機WIFI- -)
Address:  172.20.10.1


名稱:    www.a.shifen.com
Addresses:  180.97.33.108
  180.97.33.107
Aliases:  www.baidu.com


Exit code: 0

相關文章