MaxCompute客戶端在windows命令行下查詢中文亂碼怎麼辦?

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

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

MaxCompute客戶端在windows命令行下查詢中文亂碼怎麼辦?

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

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

MaxCompute客戶端在windows命令行下查詢中文亂碼怎麼辦?

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

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

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

MaxCompute客戶端在windows命令行下查詢中文亂碼怎麼辦?

修改完畢後,會發現在cmd屬性的”選項”欄中的”當前代碼頁”的字符設置已經修改為65001(UTF-8)

MaxCompute客戶端在windows命令行下查詢中文亂碼怎麼辦?

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

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

查看更多:https://yqh.aliyun.com/detail/6668

上雲就看雲棲號:更多雲資訊,上雲案例,最佳實踐,產品入門,訪問:https://yqh.aliyun.com/

Published in News by Awesome.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *