资讯专栏INFORMATION COLUMN

系统字符集对Java程序的影响

Invoker / 3318人阅读

摘要:系统字符集对程序的影响下环境变量常用的几个值英文编码中文编码中文编码编码或者为空等同此种情况编码等同对程序,字符串在内存中总是按编码存储的,系统字符集会影响到字节流字符流字符流字节流的转换获取系统默认字符集中文下默认是以读

系统字符集对Java程序的影响

Linux 下 LANG 环境变量

常用的几个LANG 值

export LANG=en_US.UTF-8    # 英文 UTF-8编码
export LANG=zh_CN.UTF-8    # 中文 UTF-8编码
export LANG=zh_CN.GB18030  # 中文 GB18030编码
export LANG=C              # ascii 编码 unset LANG 或者 LANG 为空等同此种情况
export LANG=POSIX          # ascii 编码 等同 LANG=C

对Java程序,字符串在java内存中总是按unicode编码存储的,系统字符集会影响到字节流=>字符流字符流=>字节流的转换

InputStream -> Reader
Writer -> OutputStream
String -> bytes
bytes -> String
// 获取系统默认字符集
System.getProperty("file.encoding");  // 中文windows 下默认是GBK
Charset.defaultCharset();  (import java.nio.charset.Charset)


// 以 UTF-8 读取文件
FileInputStream fis = new FileInputStream("d:input.txt"); 
InputStreamReader reader = new InputStreamReader(fis, "UTF-8"); 


String encoding = "UTF-8";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Writer output = new OutputStreamWriter(baos, encoding); // 指定从字符流转换成字节流时的字符编码
// 如果不指定字符编码则使用默认的字符编码,也就是LANG中设置的

String.getBytes(charset)

new String(bytes, charset)

参考资料

http://liuzhiji.bokee.com/671...

https://stackoverflow.com/que...

https://superuser.com/questio...

https://docs.oracle.com/javas...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70777.html

相关文章

  • Java™ 教程(配置实用工具)

    配置实用工具 本节介绍一些帮助应用程序访问其启动上下文的配置实用程序。 属性 Properties是作为键/值对管理的配置值,在每对中,键和值都是字符串值,键标识并用于检索值,就像变量名用于检索变量的值一样。例如,能够下载文件的应用程序可能使用名为download.lastDirectory的属性来跟踪上次下载所使用的目录。 要管理属性,请创建java.util.Properties的实例,此类提...

    yhaolpz 评论0 收藏0
  • 系统优化怎么做-Tomcat优化

    摘要:运行模式分种模式一般使用模式效率低对系统配置有一些比较高的要求确认的运行模式配置文件关键配置最大线程数默认是最小活跃线程数默认是最大的等待队列个数,超过则请求拒绝默认值是,一般不改变。 前言 Tomcat作为Web应用的服务器,目前绝大多数公司都是用其作为应用服务器的,应用服务器的执行效率会影响系统执行,这里会讲Tomcat怎样进行配置能提高处理性能。另外必须提到对应的JVM参数的优化...

    gghyoo 评论0 收藏0
  • 2018年第一周-JavaIO系统

    摘要:过滤器流,如等,是类库,是为了提供一些类让你能够处理一些极为常见的数据格式。读写器,由于流和过滤器流还是仅次于处理字节,也就是二进制。过滤器流缓冲流和类将写入的数据存储到缓冲区中一个名为的保护字节数组字段,直到缓冲区满或刷新输出流。 A little older, a little wiser, but happy to see you. ——Interstellar 2018年了,再...

    kgbook 评论0 收藏0
  • Java 象与垃圾回收

    摘要:当一个对象被一个或一个以上的引用变量所引用时,它处于可达状态,不可能被系统垃圾回收机制回收。虚引用主要用于跟踪对象被垃圾回收的状态,虚引用不能单独使用,虚引用必须和引用队列联合使用。 当程序创建对象、数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区中,当这块内存不再被任何引用变量引用时,这块内存就变成垃圾,等待垃圾回收机制进行回收。垃圾回收机制具有如下...

    booster 评论0 收藏0

发表评论

0条评论

Invoker

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<