2

我测试了用于编码 ISO-8859-5 的 redis 和 jedis API:

        String S = new String("Привет мир".getBytes(), "ISO-8859-5");
    redis.lpush("test", S);
    System.out.println(redis.lpop("test"));

结果,我有:а�б�аИаВаЕб�аМаИб�</p>

然后我尝试使用 SafeEncoder:

        String S = new String("Привет мир".getBytes(), "ISO-8859-5");
    redis.lpush("test", S);
    byte[] Result = SafeEncoder.encode(redis.lpop("test"));
    System.out.println(new String(Result));

结果:аАТаБТаАааАааАааБТ аАааАааБТ

我做错了什么?是我还是redis,还是jedis?

4

2 回答 2

0

可以直接使用二进制形式

byte[] b = "Привет мир".getBytes();
redis.lpush(SafeEncoder.encode("test"), b);
System.out.println(redis.lpop("test"));
于 2011-12-22T01:30:01.173 回答
0

尝试将信息转换为 UTF-8。
顺便说一句,如果你有西里尔编码的问题,这个网站可以帮助你(2cyr.com

于 2011-11-15T11:40:00.307 回答