如何使用redis-cli将utf-8字符设置到redis中?

p1g*_*d0g 3 utf-8 redis

我想使用 redis-cli 将 utf-8 字符“\\u042e”设置到 redis 中。

\n\n

我试过:

\n\n
127.0.0.1:6379> set test "\\u042e"\nOK\n127.0.0.1:6379> get test\n"u042e"\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后我尝试:

\n\n
127.0.0.1:6379> set test \'\\u042e\'\nOK\n127.0.0.1:6379> get test\n"\\\\u042e"\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
127.0.0.1:6379> set test `\\u042e`\nOK\n127.0.0.1:6379> get test\n"`\\\\u042e`"\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我想要的是(我从 golang 设置的):

\n\n
127.0.0.1:6379> get test\n"\\u042e"\n
Run Code Online (Sandbox Code Playgroud)\n\n

即使我添加 --raw,这也不起作用。

\n\n

最后我尝试了:

\n\n
127.0.0.1:6379> set test \xd0\xae\nOK\n127.0.0.1:6379> get test\n"\\xd0\\xae"\n
Run Code Online (Sandbox Code Playgroud)\n\n

看起来它们是相同的字节,但我不完全确定。

\n\n

我可以使用redis-cli直接将utf-8字符设置到redis中吗?

\n

Ita*_*ber 9

默认情况下,它会格式化命令的输出redis-cli- 在您的情况下,它会以“\\xNN”的形式打印对转义的 UTF-8 字符进行编码的字节。

\n\n

您可以覆盖此行为,并让 cli 使用“--raw”开关打印原始输出,如下所示:

\n\n
$ redis-cli --raw\n127.0.0.1:6379> SET test \xd0\xae\nOK\n127.0.0.1:6379> GET test\n\xd0\xae\n
Run Code Online (Sandbox Code Playgroud)\n