您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Redis中保存和检索带有重音符号的字符串?

如何在Redis中保存和检索带有重音符号的字符串?

Redis服务器本身将所有数据存储为二进制对象,因此它不依赖于编码。服务器将只存储客户端发送的内容包括UTF-8字符)。

以下是一些实验:

$ echo téléphone | hexdump -C
00000000  74 c3 a9 6c c3 a9 70 68  6f 6e 65 0a              |t..l..phone.|

c3a9是’é’char的表示。

$ redis-cli
> set t téléphone
OK
> get t
"t\xc3\xa9l\xc3\xa9phone"

实际上,数据已正确存储在Redis服务器中。但是,当它在终端中启动时,Redis客户端会解释输出并应用sdscatrepr函数来转换不可打印的字符(其定义取决于语言环境,并且无论如何都可能会破坏多字节字符)。

一个简单的解决方法是使用“ raw”选项启动redis-cli:

$ redis-cli --raw
> get t
téléphone

您自己的应用程序可能会使用客户端库之一,而不是redis-cli,因此在实践中应该不会有问题。

其他 2022/1/1 18:15:21 有510人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶