JVM不包含字符集的解决办法

当使用Charset.forName("GB2312") 这个方法的时候,要求JVM本身包含该字符集。
Charset.availableCharsets() 查看所有可用字符集,如果不包含会报错。

public class ChineseCharsetProvider extends CharsetProvider {private static final String GB2312 = "GB2312";private static final String BIG5 = "Big5";private static final String GBK = "GBK";@Overridepublic Iterator<Charset> charsets() {return Collections.emptyIterator();}@Overridepublic Charset charsetForName(String charsetName) {if (GB2312.equalsIgnoreCase(charsetName) || BIG5.equalsIgnoreCase(charsetName))return Charset.forName(GBK);return Charset.defaultCharset();}
}

使用这样一个转换器,当使用不包含的中文字符集时,转为调用可用字符集。通过在META-INF中配置进行调用。

项目resource资源文件夹下的建立META-INF/services文件夹,在其下建一个文本,文件名为java.nio.charset.spi.CharsetProvider
在这个文件中,把我们刚刚写的 CharsetProvider 全类名写在里面。这样就会自动调用。

nio.charset.UnsupportedCharsetException 解决相关推荐

  1. 顺利解决org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException!

      时隔上一篇博客的发布时间已经有将近1年的时间,感觉如果再不更新博客的话自己找个csdn博客就要生锈了!所以从这周开始,自己必须要逼自己每周至少发布1~2篇技术博客,欢迎大家对我保持积极监督!    ...

  2. 解决AppCrawler自定义配置后报:java.nio.charset.MalformedInputException: Input length = 1的解决方法

    解决方案: 自动生成demo.yml文件后,使用sublime打开,我这边默认是是gbk打开的,左下角如图: 所以更改文件格式,文件-设置文件编码-utf8 即可正常运行文件: java -jar a ...

  3. nacos文件解析错误:org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException

    今天在打完镜像之后在本地运行时,出现了org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: ...

  4. java.nio.charset.MalformedInputException: Input length = 2

    问题: 项目在idea中编译运行没有问题,数据能入库.但是当java项目打包成jar包,运行该jar包后 下图蓝色的代码行报错: java.nio.charset.MalformedInputExce ...

  5. SpringBoot配置外部tomcat启动时发生Caused by: java.nio.charset.MalformedInputException: Input length = 1错误

    错误来源 最近在编写springboot项目,需要配置外部tomcat.然而在配置好后启动测试时总是出现 org.yaml.snakeyaml.error.YAMLException: java.ni ...

  6. java.nio.charset.MalformedInputException: Input length = 1

    spring cloud微服务应用程序和nacos配置中心集成后,在windows的idea中正常,打完包,在windows系统上,通过控制台启动,报错下面的错 org.yaml.snakeyaml. ...

  7. springboot 启动报错java.nio.charset.MalformedInputException: Input length=2

    一.问题: springboot 启动的时候报错,错误提示代码如下: java.nio.charset.MalformedInputException: Input length=2 二.原因: 1. ...

  8. android java.nio.charset.MalformedInputException: Input length = 1

    java.nio.charset.MalformedInputException: Input length = 1 现象 What went wrong: Execution failed for ...

  9. java.lang.NoSuchMethodError: org.springframework.http.MediaType.getCharSet()Ljava/nio/charset/Charse

    java.lang.NoSuchMethodError: org.springframework.http.MediaType.getCharSet()Ljava/nio/charset/Charse ...

最新文章

  1. C# 发送Http请求 - WebClient类
  2. linux脚本发送udp,基于shell脚本实现UDP端口探测
  3. python中的优化器有哪些_Python中有哪些性能优化方法
  4. html树形多选下拉列表,EasyUI 多行树形下拉框(Multiple ComboTree)_Vue EasyUI Demo
  5. Fabricjs一个简单强大的Canvas绘图库快速入门
  6. 【Tomcat】Tomcat性能分析
  7. REVERSE-PRACTICE-CTFSHOW-3
  8. linux 内存溢出排查_【开发者成长】JAVA 线上故障排查完整套路!
  9. 可还行?这款手机首获德国红点设计大奖
  10. 蓝桥杯 ALGO-14 算法训练 回文数
  11. List转换成json类型以及对象转换成json类型
  12. Sosoapi本地项目搭建
  13. python2.7读取txt文件_python如何读取txt文件
  14. 微信中扫一扫二维码唤起手机默认浏览器的实现方式
  15. 举个栗子~Tableau 技巧(208):使用“显示/隐藏”按钮,快速切换图表
  16. 3Dmark2006真让人郁闷!
  17. 关于CM3/CM4位带操作的总结
  18. 机器学习入门系列之PCA降维
  19. 银河麒麟服务器系统使用的一些问题和解决方案
  20. 转载: React Native 采用Fetch方式发送跨域POST请求

热门文章

  1. Java项目:SSM台球室计费管理系统
  2. [33期] 人 都 挺 好。
  3. 41岁中兴员工:这可能是我第5次失业_中兴被美国制裁的思考
  4. 详解蔬菜自动售货机的结构设计原理
  5. 台式计算机配置的简单说明,电脑台式机配置的知识【图文】
  6. web学习——JavaScript(1)
  7. 工业视觉-西门子-1200与海康相机软件通讯
  8. ROS工业机器人 ROS-I Kinetic培训课程
  9. Incorrect string value XF0 X9F X98 XB3 XE3 for column 解决办法
  10. 实习生转正难 吗