博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MaxCompute客户端(odpscmd)在windows命令行下查询中文乱码问题处理实践
阅读量:2401 次
发布时间:2019-05-10

本文共 908 字,大约阅读时间需要 3 分钟。

是阿里云大数据计算服务MaxCompue产品官方客户端工具,通过客户端工具可以连接MaxCompute项目,完成包括数据管理、数据上下传、作业执行、用户及授权管理等各项操作。

但有用户会碰到在Windows下的命令行中执行odpscmd后,查询包含中文字符的表数据时出现乱码的情况,本文将给出问题分析和解决方法,帮助大家快速处理这样的问题。

问题描述:

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

问题分析:

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

操作方法:

1.验证Windows的cmd的当前字符设置。在cmd中执行chcp命令,并回车:
dae6d0150c7ba61e7a1379b454d4e90aa57.jpg
如上图,查询结果为936,代表当前代码页为简体中文GBK

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

3.通过cmd的属性,修改cmd的字体

chcp 65001后还不能直接在odpscmd中正常查看中文,还需要在cmd的属性窗口的“字体”栏中,选择"点阵字体"之外的字体,如"Lucida Console"或者"新宋体"等字体。
3b0cfa8b41c7b12edf6c463e4e0b77c19e2.jpg
修改完毕后,会发现在cmd属性的"选项"栏中的"当前代码页"的字符设置已经修改为65001(UTF-8)356e3945abf9cd81d36517e6d354593165d.jpg

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

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

本文为云栖社区原创内容,未经允许不得转载。

转载于:https://my.oschina.net/u/1464083/blog/3070135

你可能感兴趣的文章
测试使用标准I/O进行Informix同时备份和恢复
查看>>
metalink
查看>>
顶点财经
查看>>
在SLES中如何修改主机名(zt)
查看>>
Install iSCSI target for Linux with kernel 2.6.14(zt)
查看>>
不胜人生一场醉
查看>>
在红帽Linux企业版中,使用什么iSCSI目标端软件?(zt)
查看>>
集群的应用实例(zt)
查看>>
关于redhat上iscsi的安装:iSCSI target HowTo on Enterprise Linux (RHEL4)
查看>>
新学一个单词cPanel
查看>>
什么是XAMPP (zt)
查看>>
使用 Linux 操作系统: Dell PowerVault RD1000 附录
查看>>
tmpwatch命令详解
查看>>
XAMPP安装(zt)
查看>>
如何在 Windows XP 上安装 WordPress 本地测试
查看>>
用 Logwatch 工具监控 Linux 系统 Log 日志(zt)
查看>>
优酷看钢铁侠
查看>>
docker学习1:CentOS Docker 安装
查看>>
docker学习3:Docker Hello World
查看>>
docker学习7:Docker 安装 PHP
查看>>