解决Jedis数据读取乱码问题
2024-09-10 12:35:45
现象
同一套代码,同一个数据源,不同的操作系统,在OSX
上数据提取编码正常,而Ubuntu
上拉取数据乱码,数据拉取代码如下。
@Override
public List<String> mget(String... fields) {
List<byte[]> arrFields = new ArrayList<>();
for (String field : fields) {
arrFields.add(field.getBytes());
}
List<byte[]> results = redisTemplate.execute(
(RedisCallback<List<byte[]>>) connection -> connection.mGet(arrFields.toArray(new byte[arrFields.size()][]))
);
if (results == null) {
return new ArrayList<>();
}
final List<String> ret = new ArrayList<>();
results.forEach(result -> {
if (result != null) {
try {
ret.add(new String(result));
} catch (UnsupportedEncodingException e) {
ret.add(null);
}
} else {
ret.add(null);
}
});
return ret;
}
检查了Redis
存储的数据都是UTF-8
之后,怀疑是不同OS的编码有所不同,所以对提取的数据指定了编码格式,即new String(data, "UTF8");
,解决了问题。
最新文章
- JS--遍历对象
- windows程序是如何开始执行的??
- JS图表插件(柱形图、饼状图、折线图)
- 解决ssh登录后闲置时间过长而断开连接
- [CareerCup] 13.8 Smart Pointer 智能指针
- Asp.net中全局缓存的几种方式
- Java [Leetcode 338]Counting Bits
- SRM 511 DIV1 500pt(DP)
- C语言 字符串和数字转换函数
- 关于STM32下载问题的简单理解
- vs2010安装svn插件
- VS2015 使用
- 关于使用栈将一般运算式翻译为后缀表达式并实现三级运算的方法及实例(cpp版)
- c#实战开发:以太坊Geth 命令发布智能合约 (五)
- 标识符and数据类型
- DNA Evolution CodeForces - 828E(树状数组)
- Date、Calendar、DateFormat类
- ettercap 模块使用
- java 之2D过气游戏类的写法
- inux跟踪线程的方法:LWP和strace命令
热门文章
- Ubuntu Server 14.04在VMware安装的一些事儿
- 如何将mongodb bson文件转成json文件
- 【LeetCode题意分析&;解答】38. Count and Say
- 服务器响应HTTP请求状态码(转)
- Android网络框架技术
- Highlighting an element as it is hovered over (like inspect element in FireBug) - jQuery Forum
- 高效率JavaScript编写技巧
- j详细说明ava于clone办法
- virtualbox中新版本Ubuntu安装软件增强包后重启无限登录界面的解决办法
- HDU 5226 Tom and matrix(组合数学+Lucas定理)