1. 程式人生 > >MaxCompute客戶端(odpscmd)在windows命令列下查詢中文亂碼問題處理實踐

MaxCompute客戶端(odpscmd)在windows命令列下查詢中文亂碼問題處理實踐

問題描述:
Windows使用者下載配置配置客戶端(odpscmd)後,在查詢包含中文字元的表資料時,會出現亂碼情況,如下圖所示:
image

問題分析:
MaxCompute對中文預設使用utf-8字符集的編碼方式,客戶端亂碼的原因是因為使用者訪問的客戶端側(也就是windows下的cmd命令列)沒有使用utf-8對查詢反饋的字元進行解析展示,所以需要檢視cmd的當前顯示字元設定是否為utf-8,如果不是需要修改為utf-8後進行查詢,即可正確展示。

操作方法:
1.驗證Windows的cmd的當前字元設定。在cmd中執行chcp命令,並回車:
image
如上圖,查詢結果為936,代表當前內碼表為簡體中文GBK

  1. 修改為utf-8。同樣在cmd中執行命令chcp 65001,並回車:
    image

3.通過cmd的屬性,修改cmd的字型
chcp 65001後還不能直接在odpscmd中正常檢視中文,還需要在cmd的屬性視窗的“字型”欄中,選擇"點陣字型"之外的字型,如"Lucida Console"或者"新宋體"等字型。
image
修改完畢後,會發現在cmd屬性的"選項"欄中的"當前內碼表"的字元設定已經修改為65001(UTF-8)
image

  1. 修改並確定之後,執行odpscmd並重新查詢含有中文的表
    image

想永久的更改cmd編碼值需要修改登錄檔,在執行中通過regedit進入登錄檔,找到HKEY_CURRENT_USERConsole%SystemRoot%_system32_cmd.exe,新建一個 DWORD(32位值),命名為CodePage,值設為65001 .

 

本文作者:聖遠

原文連結

本文為雲棲社群原創內容,未經