MaxCompute客户端在windows命令行下查询中文乱码怎么办?

MaxCompute客户端工具是阿里云大数据计算服务MaxCompue产品官方客户端工具,通过客户端工具可以连接MaxCompute项目,完成包括数据管理、数据上下传、作业执行、用户及授权管理等各项操作。 但有用户会碰到在Windows下的命令行中执行odpscmd后,查询包含中文字符的表数据时出现乱码的情况,本文将给出问题分析和解决方法,帮助大家快速处理这样的问题。

问题描述: Windows用户下载配置配置客户端(odpscmd)后,在查询包含中文字符的表数据时,会出现乱码情况,如下图所示:

问题分析: MaxCompute对中文默认使用utf-8字符集的编码方式,客户端乱码的原因是因为用户访问的客户端侧(也就是windows下的cmd命令行)没有使用utf-8对查询反馈的字符进行解析展示,所以需要查看cmd的当前显示字符设置是否为utf-8,如果不是需要修改为utf-8后进行查询,即可正确展示。

操作方法: 1.验证Windows的cmd的当前字符设置。在cmd中执行chcp命令,并回车:

MaxCompute客户端在windows命令行下查询中文乱码怎么办?_第1张图片

如上图,查询结果为936,代表当前代码页为简体中文GBK

  1. 修改为utf-8。同样在cmd中执行命令chcp 65001,并回车:

MaxCompute客户端在windows命令行下查询中文乱码怎么办?_第2张图片

3.通过cmd的属性,修改cmd的字体 chcp 65001后还不能直接在odpscmd中正常查看中文,还需要在cmd的属性窗口的“字体”栏中,选择"点阵字体"之外的字体,如"Lucida Console"或者"新宋体"等字体。

MaxCompute客户端在windows命令行下查询中文乱码怎么办?_第3张图片

修改完毕后,会发现在cmd属性的"选项"栏中的"当前代码页"的字符设置已经修改为65001(UTF-8)

MaxCompute客户端在windows命令行下查询中文乱码怎么办?_第4张图片

  1. 修改并确定之后,执行odpscmd并重新查询含有中文的表

MaxCompute客户端在windows命令行下查询中文乱码怎么办?_第5张图片

想永久的更改cmd编码值需要修改注册表,在运行中通过regedit进入注册表,找到HKEY_CURRENT_USERConsole%SystemRoot%_system32_cmd.exe,新建一个 DWORD(32位值),命名为CodePage,值设为65001 .

更多信息,可以自行搜索chcp相关的使用文章。

上云就看云栖号:更多云资讯,上云案例,最佳实践,产品入门,访问:https://yqh.aliyun.com/

本文为阿里云原创内容,未经允许不得转载。

你可能感兴趣的:(客户端)