当前位置: 代码迷 >> 综合 >> Java -- 报错:java.lang.IllegalArgumentException: Null input buffer 无效的 “UTF8“ 编码字节顺序: 0x00
  详细解决方案

Java -- 报错:java.lang.IllegalArgumentException: Null input buffer 无效的 “UTF8“ 编码字节顺序: 0x00

热度:51   发布时间:2024-03-08 14:21:09.0

背景:

我们需要将一段文本存库,存库时报错:

无效的 "UTF8" 编码字节顺序: 0x00java.lang.IllegalArgumentException: Null input buffer

此时想到对这段文本进行转码存储。实施起来,转码过程没有问题,也能够存到数据库里了。但是从数据库中读取后,解码时还是会报错。将最开始的文本用 nodepad++ 打开,发现在本文中存在一个 Nul 字符,就是这个该死的字符引起的这一系列的问题

既然转码这条路走不通,那么我们就考虑将这个字符去掉

public static String trimnull(String string) throws UnsupportedEncodingException{
      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]){
      list.add(bytes[i]);  }  }  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;  
}
  相关解决方案