首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

遇到问题---redis命令行查看中文乱码--十六进制字符串处理

遇到问题---redis命令行查看中文乱码--十六进制字符串处理

症状

Redis在使用命令行操作时,如果查看内容或者key中包含中文,会显示16进制的字符串”\xe4\xb8\xad\xe5\x9b\xbd”

127.0.0.1:6379> set k1 '中国'
OK
127.0.0.1:6379> get k1
"\xe4\xb8\xad\xe5\x9b\xbd"



原因

Redis的在使用的过程中有中文的内容都是以十六进制的形式存储的,所以在使用redis-cli客户端连接时如果是内容中有中文的部分都会以十六进制的形式显示,因此查询redis中的数据内容时就有点不太方便

转载请注明出处: 遇到问题—redis命令行查看中文乱码–十六进制字符串处理
解决方法

其实在Unix系统下可以把查到的十六进制内容用echo中的“-e“参数用来转换所查询到的十六进制内容,如下:

127.0.0.1:6379> get test1
"test\xe6\x8c\x81\xe4\xb9\x85\xe5\x8c\x96"
127.0.0.1:6379> quit
[root@localhost ~]# echo -e "test\xe6\x8c\x81\xe4\xb9\x85\xe5\x8c\x96"
test持久化



此外在使用redis-cli客户端时还可以使用redis-cli客户端本身的“–raw”参数在连接redis时用来输出原始内容:

[root@localhost ~]# redis-cli --raw      
127.0.0.1:6379> get test1
test持久化
返回列表