java – 如何强制jar使用(或运行jar的jvm)utf-8而不是系统的默认编码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何强制jar使用(或运行jar的jvm)utf-8而不是系统的默认编码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1090字,纯文字阅读大概需要2分钟。
内容图文
我的Windows默认编码是GBK,我的Eclipse完全是utf-8编码的.
因此,在我的Eclipse中运行良好的应用程序崩溃,因为在导出为jar文件时单词变得不可读;
我必须在.bat文件中编写以下行来运行该应用程序
start java -Dfile.encoding=utf-8 -jar xxx.jar
现在我的问题是,我可以在源代码中编写一些内容来设置应用程序使用(或jvm运行)utf-8而不是系统的默认编码.
解决方法:
打开文件进行读取时,需要明确指定要用于读取文件的编码:
Reader r = new InputStreamReader(new FileInputStream("myfile"), StandardCharsets.UTF_8);
然后,默认平台编码的值(您可以使用-Dfile.encoding更改)不再重要.
注意:
我通常建议始终为依赖于标准语言环境的任何操作明确指定编码,例如字符I / O.许多Java API方法默认使用平台编码,我认为这是一种糟糕的设计,因为平台编码通常不是正确的,加上它可能会突然改变(如果用户例如切换操作系统区域设置),打破了你的应用程序.
所以总是说你想要哪种编码.
在某些情况下,平台编码是正确的(例如打开用户刚为您创建的文件时),但它们相当罕见.
笔记2:
java.nio.charset.StandardCharsets是在Java 1.7中引入的.对于较旧的Java版本,您需要将输入编码指定为String(ugh).可能的编码列表取决于JVM,但每个JVM至少保证:
US-ASCII,ISO-8859-1,UTF-8,UTF-16BE,UTF-16LE,UTF-16.
内容总结
以上是互联网集市为您收集整理的java – 如何强制jar使用(或运行jar的jvm)utf-8而不是系统的默认编码全部内容,希望文章能够帮你解决java – 如何强制jar使用(或运行jar的jvm)utf-8而不是系统的默认编码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。