我使用 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/