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

MaxCompute客戶端工具是阿里雲大數據計算服務MaxCompue產品官方客戶端工具,經過客戶端工具能夠鏈接MaxCompute項目,完成包括數據管理、數據上下傳、做業執行、用戶及受權管理等各項操做。
但有用戶會碰到在Windows下的命令行中執行odpscmd後,查詢包含中文字符的表數據時出現亂碼的狀況,本文將給出問題分析和解決方法,幫助你們快速處理這樣的問題。html

問題描述:
Windows用戶下載配置配置客戶端(odpscmd)後,在查詢包含中文字符的表數據時,會出現亂碼狀況,以下圖所示:windows

問題分析:
MaxCompute對中文默認使用utf-8字符集的編碼方式,客戶端亂碼的緣由是由於用戶訪問的客戶端側(也就是windows下的cmd命令行)沒有使用utf-8對查詢反饋的字符進行解析展現,因此須要查看cmd的當前顯示字符設置是否爲utf-8,若是不是須要修改成utf-8後進行查詢,便可正確展現。工具

操做方法:
1.驗證Windows的cmd的當前字符設置。在cmd中執行chcp命令,並回車:

如上圖,查詢結果爲936,表明當前代碼頁爲簡體中文GBK字體

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

3.經過cmd的屬性,修改cmd的字體
chcp 65001後還不能直接在odpscmd中正常查看中文,還須要在cmd的屬性窗口的「字體」欄中,選擇"點陣字體"以外的字體,如"Lucida Console"或者"新宋體"等字體。

修改完畢後,會發如今cmd屬性的"選項"欄中的"當前代碼頁"的字符設置已經修改成65001(UTF-8)大數據

  1. 修改並肯定以後,執行odpscmd並從新查詢含有中文的表

想永久的更改cmd編碼值須要修改註冊表,在運行中經過regedit進入註冊表,找到HKEY_CURRENT_USERConsole%SystemRoot%_system32_cmd.exe,新建一個 DWORD(32位值),命名爲CodePage,值設爲65001 .阿里雲


原文連接
本文爲雲棲社區原創內容,未經容許不得轉載。編碼

相關文章
相關標籤/搜索