Джедайс или редис проблема с кодировкой ISO-8859-5 - PullRequest
2 голосов
/ 10 августа 2011

Я тестирую redis и jedis API для кодирования ISO-8859-5:

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

В результате у меня есть: а б аИаВаЕб аМаИб

Затем я пытаюсь использовать 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));

Результат: аАТаБТаАааАааАааБТ аАааАааБТ

Что я делаю не так? Это я или редис, или джедай?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2011

Вы можете использовать двоичную форму напрямую

byte[] b = "Привет мир".getBytes();
redis.lpush(SafeEncoder.encode("test"), b);
System.out.println(redis.lpop("test"));
0 голосов
/ 15 ноября 2011

Попробуйте преобразовать информацию в UTF-8.
, кстати, если у вас есть проблемы с кириллическим кодированием, этот сайт может вам помочь ( 2cyr.com )

...