场景描述:

  项目中通过java代码中从数据库中查询一系列数据,对数据做相应处理,然后通过字符流将数据写如一个新生成的文件中,将该项目部署在linux服务器上,最后生成的文件拿到本地使用notepad++打开会在部分数据末尾出现NUL

排查原因:

  • NUL在C语言中是一个特殊字符常量'\0',空字符
  • 在linux中处理字符串写入,每行字符串结尾如果是空字符,linux就会用'\0'表示

解决方案:

  使用该文件时将NUL替换为“ ”空字符

    public static String trimnull(String string) throws UnsupportedEncodingException
{//该方法作用是使用" "替换一个字符串中的所有NUL
ArrayList<Byte> list = new ArrayList<Byte>();
byte[] bytes = string.getBytes("UTF-8");
for(int i=0;bytes!=null&&i<bytes.length;i++){
if(0!=bytes[i]){//排除NUL(0)
list.add(bytes[i]);
}else {
byte b = 32;//空字符对应的byte值
list.add(b);
}
}
byte[] newbytes = new byte[list.size()];
for(int i = 0 ; i<list.size();i++){
newbytes[i]=(Byte) list.get(i);
}
String str = new String(newbytes,"UTF-8");
return str;
}

  

最新文章

  1. Window10+VS2015+DevExpress.net 15.1.7完美破解(图)
  2. C#的值参数与引用参数
  3. linux之iptables总结
  4. autotrace显示Statistics很多信息为0(转)
  5. Mac OS X用户,使用homebrew安装,FreeBSD也可以
  6. 【JAVA】修改项目包名
  7. iOS事件响应链(Responder Chain)
  8. Mvc 流程调用分析
  9. [国嵌攻略][070-095][Linux编程函数手册]
  10. [Go] golang的竞争状态
  11. 如何清理Docker占用的磁盘空间?
  12. c# datatable 分组
  13. 项目管理第一篇(PROJECT MANAGEMENT A Systems Approach to Planning, Scheduling, and Controlling)
  14. k8s环境清理
  15. springmvc组件--ViewResolver
  16. 外网訪问XAMPP失败 解决方式 XAMPP1.8.3
  17. autotools源文件相同/不同目录下
  18. docker启动失败(can&#39;t create unix socket /var/run/docker.sock: is a directory)
  19. 转 linux下php扩展mysqli的支持
  20. Android入门-新手如何成功创建一个Android小应用

热门文章

  1. [fw]用Kprobes调试(debug)内核
  2. 后台得到jsp提交name属性相同的内容
  3. console.log的另一种用法
  4. 深入学习Redis主从复制
  5. IMU预积分
  6. find 文件查找
  7. linux随笔-01
  8. Chocolatey Window系统下的软件管理工具
  9. 力扣——candy (分糖果) python实现
  10. linux 出现 -bash-4.2# 问题的解决方法