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

cxxbz 2013-03-11 06:26:00
本地虚拟机linux环境

我在Redis中存储的value值是中文“马拉斯加”
Shell下get获取后展示的结果为:\xc2\xed\xc0\xad\xcb\xb9\xbc\xd3
请问这是什么编码格式?

用PHP程序get的值为原中文,如何操作使在Shell下获取的value也为汉字?
...全文
18352 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bicy 2014-04-02
  • 打赏
  • 举报
回复
难道是以“数据原始的格式”显示,如存的是gbk,查询结果则以gbk显示?但是终端编码呢,不影响这个吗?这些个编码问题很多时候都解决了,但一直没扯明白!
bicy 2014-04-02
  • 打赏
  • 举报
回复
楼上正解,至少我的问题就这样解决了。 /usr/local/redis/bin/redis-cli --help 得到如下结果: --raw Use raw formatting for replies (default when STDOUT is not a tty). 问题虽然解决了,但这个参数还是不太明白。
gongheguoyingpai11 2013-05-14
  • 打赏
  • 举报
回复
我也遇到了这个问题,不过现在解决了,只需要你在启动redis-cli时在其后面加上--raw参数即可启动后 再显示就正常了
fdl19881 2013-03-12
  • 打赏
  • 举报
回复
终端与php程序使用的编码不一致,,所以没法简单的互操作. php转换编码的函数:http://blog.163.com/long_alfred/blog/static/1882382792011717340455/ GBK -> UTF-8 UTF-8 -> GBK mb_convert_encoding或者convert函数.. php不懂,你自己看吧.. 也就是在程序中增加一点操作,封装下就行了.
fdl19881 2013-03-12
  • 打赏
  • 举报
回复
引用 3 楼 cxxbz 的回复:
\xc2\xed\xc0\xad\xcb\xb9\xbc\xd3 这是十六进制
出现问题的原因是因为:你在通过什么语言操作字符存入redis时,使用的编码是GBK, 而你的shell用的编码是utf-8 ((我猜,locale 查看),,,所以导致在shell中无法正常显示为汉字. 举两个shell命令的例子,你可以在你的终端下输入试试.
echo -e -n '\xe9\xa9\xac\xe6\x8b\x89\xe6\x96\xaf\xe5\x8a\xa0'
显示为马拉斯加 再看一例:
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++转换下字符串的编码只需要用一个函数就行了. 而用第二种方法的话,系统可能发生各种意想不到的问题..
cxxbz 2013-03-12
  • 打赏
  • 举报
回复
\xc2\xed\xc0\xad\xcb\xb9\xbc\xd3 这是十六进制
fdl19881 2013-03-11
  • 打赏
  • 举报
回复
这个得看你在存储时是用的什么编码,根据我的测试,你在给redis存储时用的是GBK编码。 下面是python显示语句,刚好显示出的是马拉斯加... 所以那是GBK字符编码。
print '\xc2\xed\xc0\xad\xcb\xb9\xbc\xd3'.decode('gbk')
夏之冰雪 2013-03-11
  • 打赏
  • 举报
回复
http://docs.python.org/2/library/sys.html#sys.setdefaultencoding php的不清楚,python的设置成utf8即可。 php有的话,你设置成utf8试试

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧