Redis出现中文乱码的问题及解决

 更新时间:2025年06月27日 17:11:54   作者:yuhuofei2021  
这篇文章主要介绍了Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

今天测试一个小功能,用redis做了个缓存,然后启动redis客户端进行查询,发现得不到想要的中文结果。

网上查找相关的解决方案,却没有一个能完整解决问题的,最后自己一步一个脚印解决了。

1. 问题的产生

(1)将接口返回数据写入redis,设置key为“data”

在这里插入图片描述

(2)找到redis安装目录中的redis-server.exe,双击启动

在这里插入图片描述

(3)在redis-server.exe这个文件的这一层地址栏,输入cmd,打开控制台,然后输入redis-cli并回车,接着PING一下连通性,可以看到客户端是没有问题的

在这里插入图片描述

(4)根据缓存的key,输入查询语句get data,查询一下缓存数据。可以看到,能查到数据,但是没有想要的中文出现。

在这里插入图片描述

2. 问题的解决

很明显,前面出现的问题,并不是中文乱码问题(因为连中文的痕迹都没有看到),而是数据的进制问题。

redis数据进制问题的解决

要解决数据进制问题,只需要在前面的(3)中,将redis-cli改为redis-cli --raw输入进去即可,这也是很多网上的解决方案,我们可以看下这么解决的结果。

在这里插入图片描述

好,解决了一个数据进制问题,真正出现了我们所说的中文乱码问题。这个问题实际上不属于Redis的问题,而是编码问题。这也是为什么搜Redis中文乱码问题,总得不到解决方案的原因。

中文乱码问题解决

这个问题是因为写java文件时用的是UTF-8的编码格式,而Windows控制台对于中文,是GBK的编码格式,两者不一致导致。

查看java文件编码格式

在这里插入图片描述

右键Windows控制台—>属性,查看编码格式

在这里插入图片描述

乱码问题,只要保持两者编码格式一致,该问题便可迎刃而解。

还是从前面的(3)入手,cmd打开控制台后,先输入chcp 65001,修改控制台的编码格式为UTF-8,然后再输入redis-cli --raw,后面正常查询,就能得到想要的中文结果了。

  • 修改编码格式

在这里插入图片描述

在这里插入图片描述

输入redis-cli --raw,并做后面的查询

在这里插入图片描述

总结

Redis中文乱码问题的解决:

(1)先通过chcp 65001命令修改控制台的编码格式

(2)再通过redis-cli --raw命令解决数据进制问题,最后再做查询就能得到正常的结果。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Windows下Redis的安装使用教程

    Windows下Redis的安装使用教程

    这篇文章主要以图文结合的方式为大家详细介绍了Windows下Redis的安装使用,Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用,对Redis感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 分布式利器redis及redisson的延迟队列实践

    分布式利器redis及redisson的延迟队列实践

    这篇文章为大家主要介绍了分布式利器redis及redisson的延迟队列实践,搜遍全网好像还没有使用redisson的延迟队列的,redisson作为一个分布式利器,这么好用的工具没人用有点可惜
    2022-03-03
  • redis集群主从节点自动切换方式

    redis集群主从节点自动切换方式

    这篇文章主要介绍了redis集群主从节点自动切换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • K8S redis 部署的项目实践

    K8S redis 部署的项目实践

    本文主要介绍了K8S redis 部署的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • Redis Sorted Set 跳表的实现示例

    Redis Sorted Set 跳表的实现示例

    本文详细解析了Redis中SortedSet跳表的实现原理,阐述了跳表的基本概念、结构及其在SortedSet中的应用,同时也指出了跳表在实际使用中的优势和局限,可以更好地运用Redis的SortedSet,优化高并发环境中的数据查询与操作,感兴趣的可以了解一下
    2024-10-10
  • 浅谈redission锁的默认失效时间

    浅谈redission锁的默认失效时间

    Redisson是一个基于Redis的Java驻留库,提供了许多分布式对象和服务,包括分布式锁,本文主要介绍了浅谈redission锁的默认失效时间, 具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • SpringBoot 开启Redis缓存及使用方法

    SpringBoot 开启Redis缓存及使用方法

    用redis做缓存,是因为redis有着很优秀的读写能力,在集群下可以保证数据的高可用,那么今天通过本文给大家讲解下SpringBoot使用Redis的缓存的方法,感兴趣的朋友一起看看吧
    2021-08-08
  • redis yml配置的用法小结

    redis yml配置的用法小结

    RedisYML配置是Redis的一种配置文件格式,,对Redis的配置进行统一管理,本文就来介绍了redis yml配置的用法小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Redis 如何批量设置过期时间(PIPLINE的使用)

    Redis 如何批量设置过期时间(PIPLINE的使用)

    有时候我们并不希望redis的key一直存在。例如缓存,验证码等数据,我们希望它们能在一定时间内自动的被销毁。本文就详细的介绍一下Redis 如何批量设置过期时间,感兴趣的可以了解一下
    2021-11-11
  • Redis中Zset类型常用命令的实现

    Redis中Zset类型常用命令的实现

    Zset是Redis的一种有序集合数据类型,Zset通过压缩列表和跳跃表两种底层编码方式支持小数据集和大数据集,支持多种操作,包括添加、查询、删除元素以及集合运算等,具有不同的时间复杂度,感兴趣的可以了解一下
    2024-10-10

最新评论