redis-cli --raw
127.0.0.1:6379[5]> hset yan paizi ᅲᅬᅯᅥ #中文字紫云
0
127.0.0.1:6379[5]> hget yan paizi
紫云
出现这个乱码是怎么回事
redis-cli --raw
127.0.0.1:6379[5]> hset yan paizi ᅲᅬᅯᅥ #中文字紫云
0
127.0.0.1:6379[5]> hget yan paizi
紫云
出现这个乱码是怎么回事
关注在这种情况下, Redis 存储的值出现乱码是可能的。这可能是由于 Redis 默认使用二进制安全协议,但是输出时默认使用的字符集时 ASCII 字符集。如果 Redis 存储的值包含非 ASCII 字符,则在使用 ASCII 字符集打印输出时,它们将出现乱码。
在这种情况下,你可以在 redis-cli 启动器中使用 --raw 标志,这将强制 redis-cli 使用二进制模式,可以正确输出存储在 Redis 中的所有值,包括非 ASCII 字符。
通过在 redis-cli 启动器中使用 --raw 标志,例如:
redis-cli --raw
然后输入命令语句,例如:
hget yan paizi
这应该会正确输出存储在 Redis 中的值,如"紫云",而不是乱码。
另外,你也可以使用 Unicode 编码在 Redis 中存储中文或其它非 ASCII 字符,以避免出现乱码。这需要在存储值时,将 Unicode 编码后的字符串存储到 Redis 中,在需要时使用相应的解码算法将其转换回原始字符串格式。这种方法可以避免出现字符集不兼容或处理乱码的问题。