当前位置:  技术问答>linux和unix

Redis中的value包含中文显示的问题??

    来源: 互联网  发布时间:2017-05-14

    本文导语:  本地虚拟机linux环境 我在Redis中存储的value值是中文“马拉斯加” Shell下get获取后展示的结果为:xc2xedxc0xadxcbxb9xbcxd3 请问这是什么编码格式? 用PHP程序get的值为原中文,如何操作使在Shell下获取的value也为汉字? ...

本地虚拟机linux环境

我在Redis中存储的value值是中文“马拉斯加”
Shell下get获取后展示的结果为:xc2xedxc0xadxcbxb9xbcxd3
请问这是什么编码格式?

用PHP程序get的值为原中文,如何操作使在Shell下获取的value也为汉字?

|

出现问题的原因是因为:你在通过什么语言操作字符存入redis时,使用的编码是GBK,
而你的shell用的编码是utf-8 ((我猜,locale 查看),,,所以导致在shell中无法正常显示为汉字.

举两个shell命令的例子,你可以在你的终端下输入试试.
echo -e -n 'xe9xa9xacxe6x8bx89xe6x96xafxe5x8axa0'

显示为马拉斯加
再看一例:
echo -n '马拉斯加' | od -x

显示为
0000000 a9e9 e6ac 898b 96e6 e5af a08a
0000014


所以,你的解决方法:
1. 要么在存入redis时,我不知道你用的什么语言 python, php, c/c++?   ,先将字符串转换为utf-8编码.然后存入redis.
2. 要么你就设置下你的linux系统的编码为GBK.. 帮你搜索到的一篇:http://www.huomo.cn/os/article-b6c4.html

我强烈建议用第一种方法..像python, php, c/c++转换下字符串的编码只需要用一个函数就行了. 而用第二种方法的话,系统可能发生各种意想不到的问题..

|
我也遇到了这个问题,不过现在解决了,只需要你在启动redis-cli时在其后面加上--raw参数即可启动后 再显示就正常了

|
终端与php程序使用的编码不一致,,所以没法简单的互操作.
php转换编码的函数:http://blog.163.com/long_alfred/blog/static/1882382792011717340455/
GBK -> UTF-8
UTF-8 -> GBK

mb_convert_encoding或者convert函数..
php不懂,你自己看吧.. 也就是在程序中增加一点操作,封装下就行了.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 基于Key-Value的NOSQL数据库Redis的数据结构及常用相关命令介绍
  • Redis的Node.js扩展包 node_redis
  • redis和mongodb区别详细介绍
  • Redis 的 Java 实现 redis-protocol
  • Redis 2.8.19官网下载及Redis安装完整过程介绍
  • redis的搜索组件 redis-search4j
  • Redis 3.2.4官方下载地址及Redis安装完整过程介绍
  • Redis桌面客户端 Redis Studio
  • mongodb和redis哪个好?mongodb和redis比较
  • 使用PHP导出Redis数据到另一个Redis中的代码
  • Redis​ 客户端开发包 labs-redis
  • Redis on Windows
  • Redis 客户端图形界面工具 RedisClient
  • Redis Desktop Manager
  • Redis的PHP客户端包 Predis
  • Redis的持久化存储 redis-storage
  • Redis Cluster
  • Nginx-Redis
  • redis2-nginx-module
  • Redis 服务器监控系统 Angel
  • Redis的C++客户端 xRedis


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,