微信公眾號 報 An invalid XML character (Unicode: 0x1a) was found in the CDATA sectio

光影3415發表於2020-03-02

開發的公眾號報看到莫名其妙的錯誤 如下

看日誌說 解析 xml 資料時出現 0x1a 異常,但是專案中沒有 xml 呀 ,再看之前的日誌,就會發現公眾號接受的資料有問題,如下 

專案程式碼中確實有將接收的資料進行轉換 如下

解決:在轉換之前 將字串中的  0x1a 進行替換。使用下面方法;

private String stripNonValidXMLCharacters(String in) {
  if (in == null || ("".equals(in))) return null;
  StringBuffer out = new StringBuffer(in);
  for (int i = 0; i < out.length(); i++) {
    if(out.charAt(i) == 0x1a) {
      out.setCharAt(i, '-');
    }
  }
  return out.toString();
}

相關文章