背景: 对接金蝶系统开具电子发票出现开票失败,失败原因存在特殊字符
尝试1 : EmojiUtil.removeAllEmojis(csRemark)
需要的maven依赖(放在最后面):
<dependency>
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
<version>3.2.0</version>
</dependency>
效果 :可以去掉表情等特殊符号,但仍然会存在问题(如看起来是空格而不是空格的符号)
尝试2 : 使用URL编码再解码,GBK不能识别的就会变成?,接着将?替换为空格
String gbkEncode = URLEncoder.encode(productName, "GBK");
productName = URLDecoder.decode(gbkEncode, "GBK").replace("?"," ");
效果: 完美.
总结: 出现乱码要查找乱码出现的原因,此次是因为字符编码转换引起的乱码,所以不能像常规网上找到的方式去除乱码.