背景
当使用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
中国
方式四与方式三原理其实是一样的。