Board logo

标题: 遇到问题---redis命令行查看中文乱码--十六进制字符串处理 [打印本页]

作者: look_w    时间: 2019-5-16 19:33     标题: 遇到问题---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持久化




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0