背景
通过http传输json时,出现以下异常
com.fasterxml.jackson.core.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 0)): has to be escaped using backslash to be included in string value at [Source: (PushbackInputStream); line: 1, column: 98]
解决方案
经验判断是数据导致的json格式问题,但是替换普通的换行符和空格符之后,依然出现报错。于是把出现错误的数据一行一行的打印出来,发现一些乱码字符。一通搜索排查之后,写了一个文本去除空格的工具类,包括了遇到的特殊字符。
public class TextUtil {public static String removeBlank(String text){if (StringUtils.isBlank(text)){return "";}return text.toLowerCase(Locale.ROOT).replace("\n","").replace("\t","").replace(" ","").replace("\uF8E0", "").replace("\0","");}
}