为什么Jedis无法“获取”由redis-cli.exe设置的中文字符?

时间:2014-02-19 09:01:49

标签: encoding redis jedis

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

首先, redis-cli>设置foo“中” 响应是好的

然后, 使用Jedis

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?

这两种方式无法解决我的问题,因为我必须使用jedis来获取价值。

我试过了     redis-cli --raw get 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”,但都失败了。

有人可以帮帮我吗? 提前谢谢。

Kong

1 个答案:

答案 0 :(得分:0)

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

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