初学者用 Jedis 导入 Redis 中的中文显示为乱码

2019-07-23 17:58:33 +08:00
 Wuuuu

Jedis: 3.0.1 Redis: docker - latest 5.0.5 JDK: Amazon Corretto 11 OS: Ubuntu 18.04/ Windows 10

    @Test
    public void test1() {
        //1.获取连接
        Jedis jedis = null;
        try {
            jedis = new Jedis("10.249.50.9", 6379);

            jedis.set("username","张三");

        } finally {
            if (jedis != null || "".equals(jedis)) {
                jedis.close();
            }
        }
    }

就是上面这个方法,使用 jedis 导入后,去 redis 中看,或者 jedis 取出来看都是显示乱码,但是直接在 redis 中操作 set "username","张三" 然后再使用 jedis 或者 直接在 redis 中看都是正常的中文。 已经使用了 redis-cli --raw …… 不知道是哪里的编码设置问题额,能麻烦大家看下嘛。去 jedis github 或者 Bing 了一下都没找到答案……

.java 的页面编码也是 UTF-8 的

试了下 把 .java 文件的编码转换成 GBK 就 OK 了……想问下,是不是 Redis 的编码问题额,新人想了解下……

3968 次点击
所在节点    Java
5 条回复
sty
2019-07-23 19:20:00 +08:00
"".equals(jedis) 我想知道这个是什么
springmarker
2019-07-23 20:37:27 +08:00
IDEA?Windows 中文版下默认是 GBK,上设置全改成 UTF-8。
然后再加个环境变量
JAVA_TOOL_OPTIONS -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
Wuuuu
2019-07-23 20:50:07 +08:00
@sty 说来惭愧,这也是看别人的例子写的。我觉得当时作者觉得 redis 默认值可能会变成空字符串吧……
Wuuuu
2019-07-23 20:54:17 +08:00
@springmarker 感谢告知~主要是从来没碰到过这种情况,一下子懵逼不知道怎么排查,以为是 jedis 或者 redis 的锅,走了很多弯路。
springmarker
2019-07-23 20:58:20 +08:00
@Wuuuu #4 win10 1803 后的版本可以默认 UTF-8,可能有的软件会乱码,自己抉择了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/585524

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX