python使用subprocess獲取命令行輸入后中文轉碼問題


python使用subprocess模塊可以方便的運行系統命令,並獲取輸入,但是當輸出的內容中存在中文時返回的數據就是進行過編碼后的,無法正常顯示,因此要對其進行一下轉碼,過程如下:

首先,應該知道命令行使用哪種編碼顯示輸出結果,在命令行中運行 chcp 命令來獲取活動頁代碼,如:"活動頁代碼:936"

MS-DOS為以下國家和語言提供字符集: 
  代碼頁描述 
  1258 越南語 
  1257 波羅的語 
  1256 阿拉伯語 
  1255 希伯來語 
  1254 土耳其語 
  1253 希臘語 
  1252 拉丁 1 字符 (ANSI) 
  1251 西里爾語 
  1250 中歐語言 
  950 繁體中文 
  949 朝鮮語 
  936 簡體中文(默認) GBK
  932 日語 
  874 泰國語 
  850 多語種 (MS-DOS Latin1) 
  437 MS-DOS 美國英語  
  65001 UTF-8

然后在PY內對獲取到的結果進行相應轉碼即可

例如我的活動代碼頁為936,即GBK編碼

那么應該就應該這樣寫:

String = str(Output.stdout.readline(),encoding='gbk')


Output為subprocess.Popen命令返回的對象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM