背景

当使用redis时我们存储到缓存中可能会包含一些中文,例如下面命令

set test 中国

当执行查看时,发现客户端显示的并不是中文而是乱码,例如下面结果

get test
\xe4\xb8\xad\xe5\x9b\xbd

现对【\xe4\xb8\xad\xe5\x9b\xbd】的查看有如下几个方式

方式一:通过客户端直接查看

通过如下命令更新客户端的配置,更新配置后即可查看明文

redis-cli --raw

方式二:通过命令行查看

再非redis的客户端,例如linux命令行,base命令行通过如下命令查看

$ echo -e "\xe4\xb8\xad\xe5\x9b\xbd"
中国

方式三:通过在线工具查看

将报文中【\xe4\xb8\xad\xe5\x9b\xbd】的\x替换未%,结果为【%e4%b8%ad%e5%9b%bd】将如下报文通过在线工具【URL解码 URL编码 在线URL解码/编码工具 iP138在线工具】进行解码操作示例如下:

方式四:通过代码进行解码

    @Test
    public void test() throws UnsupportedEncodingException {
        String data = "\\xe4\\xb8\\xad\\xe5\\x9b\\xbd";
        String str = data.replaceAll("\\\\x", "%");
        System.out.println(str);
        String result = URLDecoder.decode(str, "utf-8");
        System.out.println(result);
    }


输出结果:
%e4%b8%ad%e5%9b%bd
中国

方式四与方式三原理其实是一样的。

Logo

更多推荐