encoding - 为什么Jedis不能 'get'输出redis-cli.exe设置的中文字符?

标签 encoding redis jedis

我使用 win-redis-server-2.6 来存储一些简单的键值对, redis-cli.exe设置key-value,然后通过Jedis取出value。

首先, redis-cli > set foo "中" 回复没问题

然后, 使用绝地武士

JedisPoolConfig poolConfig = new JedisPoolConfig();
jPool = new JedisPool(poolConfig, host, port);
Jedis jedis = jPool.getResource();
String test= jedis.get("foo");
System.out.println(test);

但是,我明白了 �� 我已经搜索了这个问题,但没有得到任何帮助。

Redis - problem with accents (UTF-8 encoding) How to save and retrieve string with accents in redis?

这两种方式都不能解决我的问题,因为我必须使用绝地武士才能得到值。

我试过了 redis-cli --raw 获取 foo 这可以得到值,但是当我删除 --raw 选项时,redis-cli.exe 就崩溃了。

对于设置值,我尝试使用 hiredis-C-client 来设置值,但我也遇到了问题。

但是当我通过 Jedis 设置值并使用 Jedis 获取值时,没问题。

我也尝试使用下面的代码解码jedis得到的值 String newStr = new String(test.getBytes("UTF-8"), "UTF-8"); 我试过“GBK”、“GB2312”、“ISO-8859-1”,但都失败了。

谁能帮帮我? 提前致谢。

香港

最佳答案

最后,我们用另一种方式来实现这个功能。

也就是说,我们用 UTF8 编码我们想在 redis 中设置的任何中文值。在此之后,我可以通过 Jedis 得到正确的字符串。

关于encoding - 为什么Jedis不能 'get'输出redis-cli.exe设置的中文字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21875503/

相关文章:

redis - 获取 "keypattern*"在 Redis 集群中不起作用

redis - 使用 jedis 在 ubuntu 上设置 redis 集群

multithreading - 在 SLURM 环境中运行 FFMPEG 多线程

audio - 从Hi8-Lp格式转换视频

redis - key 条件更新的惯用方法

python - 是否必须将 redis-py 对象设置为全局变量才能在函数中使用?

java - Jedis 池被多次初始化

json - 结果打印空 Json

python - 将不同的编码转换为ascii

Redis block 推送直到列表有空位