转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50918506

  • 《Java利用System.getProperty(“file.encoding”)获取编码分析》
  • 《Linux中的特殊文件-/dev/zero》
  • 《Linux中的黑洞(black hole)-/dev/null》

1.0 背景

System.out.println(System.getProperty("file.encoding"));

以前一直以为file.encoding的编码就是系统的编码,直到最近碰见一个怪异的情况:WEB工程中通过上述代码打印出来的编码是GB18030,而登录Linux服务器执行locale或者vi /etc/sysconfig/i18n查出来的编码是UTF-8,竟然两者不一致,一度怀疑是不是服务器编码变了,引发了这篇文章的思考。

2.0 file.encoding编码是什么

file.encoding的值保存的是每个程序的main入口的那个java文件的保存编码,是.java文件的编码

以下两种方式查验:

1、点击java文件–>属性–>text file encoding(other的值),使用eclipse 编译器,我查看的这个类IDE显示的是UTF-8编码。

2、通过运行java类来获取该编码。

public static void main(String[] args){System.out.println(System.getProperty("file.encoding")); }

运行结果如下,图中显示编码为UTF-8,说明和IDE中显示的一致:

如果把这个文件的编码改成ISO-8859-1,看看显示的是什么编码?

上图中还是原来的那个java类,只不过编码类型改成了ISO-8859-1,记住我的本地机器的编码为UTF-8,看看其运行结果:

结果仍然是ISO-8859-1,可见file.encoding获取的仅仅是main入口函数的文件编码,并非是系统编码。

3.0 file.encoding编码是唯一的么

是不是每个java类型都有一个这个编码,下面我们测试一下,分别有两个类:

Test.java 采用ISO-8859-1文件编码:

public class Test {public static void printEncoding(){ System.out.println(System.getProperty("file.encoding")); } }

FileUpload.java 采用UTF-8文件编码:

public class FileUpload {public static void main(String[] args){ System.out.println(System.getProperty("file.encoding")); Test.printEncoding(); } }

预想,应该输出:UTF-8和ISO-8859-1。

实际输出:

UTF-8
UTF-8

从实际输出可以看出,file.encoding是唯一的,与main入口函数的java类文件编码保持一致。

http://blog.csdn.net/loongshawn/article/details/50918506

file.encoding到底指的是什么呢?相关推荐

  1. 系统变量file.encoding对Java的运行影响有多大?(转)good

    这个话题来自: Nutz的issue 361 在考虑这个issue时, 我一直倾向于使用系统变量file.encoding来改变JVM的默认编码. 今天,我想到, 这个系统变量,对JVM的影响到底有多 ...

  2. python中的列表是指针吗_Python中的指针——到底指什么(二)

    在 Python中的指针--到底指什么(一) 中,我们知道在Python的一切都是对象,变量其实是指向PyObject对象的名称,对不可变变量进行操作后,名称指向了另一个PyObject. 扣留对象 ...

  3. HTTP协议无状态中的 状态 到底指的是什么?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | 赛艇队长 来源 | cnblogs.com/bellko ...

  4. BSP、PSP到底指什么?

    /************************************************************************** BSP.PSP到底指什么?* 说明:* Boar ...

  5. HTTP 无状态中的 状态 到底指的是什么?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://www.cnblogs.com ...

  6. java命令修改user.home file.encoding等参数值

    使用java命令可以修改user.home file.encoding等参数值,但仅本次运行有效. 修改user.home的命令如下: java -Duser.home="D:\java_u ...

  7. java命令查看环境变量 user.home file.encoding等参数值

    有时候想看一下jvm环境的user.home.file.encoding等参数,可以通过下面的命令查看: java -XshowSettings:all -version -------------- ...

  8. java.library.path到底指什么

    java.library.path到底指什么? 这个就是.bashrc中的LD_LIBRARY_PATH 设为 export LD_LIBRARY_PATH=$HADOOP_HOME/lib/nati ...

  9. http的“无连接”指的是_http协议无状态中的 quot;状态quot; 到底指的是什么?...

    引子: 最近在好好了解http,发现对介绍http的第一句话[http协议是无状态的,无连接的]就无法理解了:无状态的[状态]到底指的是什么?! 找了很多资料不仅没有发现有一针见血正面回答这个问题的, ...

最新文章

  1. linux bash sh,linux bash shell.sh编程实例
  2. 零基础学习SVN之(二):CVS与SVN的区别
  3. FATE 集群部署 step1
  4. 基于Windows下使用Docker 部署Redis
  5. ubuntu常用小工具
  6. [零基础学JAVA]Java SE面向对象部分-08.面向对象基础(03)
  7. Spring @Import 注解使用详解
  8. Python Web框架——Flask
  9. 【原创】Erlang 之 entop 使用问题
  10. php框架 swoop_PHP Form Validation
  11. python的pip换源_[Python]Pip换源以及设置代理
  12. python基础(2)
  13. matlab 平滑曲线连接_用MATLAB做数据拟合究竟有多直观
  14. 2022手机号段大全、归属运营商整理—2022.01.04更新(包含三大运营商)
  15. 【Pytorch编程】Pytorch-Ignite v0.4.8的安装以及简单使用
  16. 根据设计稿,用JS计算rem的值
  17. matlab数据处理的优缺点,数字滤波的优缺点分析
  18. oracle11g64为的安装,PLSQL Developer连接不上Win7 64为系统下安装的Oracle11g64位的解决办法...
  19. 浪潮服务器dhcp修改ip,IP地址管理—DDI(DNS, DHCP, IPAM)解决方案
  20. OSError: [Errno 22] Invalid argument: ‘C:\\Users\\0moyi0\\Desktop\\AD_kk.png‘

热门文章

  1. Trident API 概览
  2. android5.1.1移植教程,iTOP4412开发板Android5.1.1移植教程
  3. java 反射的效率_如何提高使用Java反射的效率?
  4. php template strring,PHP字符串函数
  5. centos radius mysql_centos6.5下安装freeradius2.2.9+mysql
  6. mllib逻辑回归 spark_《Spark大数据分析实战》笔记
  7. linux查看php日志命令,linux查看日志的三种命令是什么,linux查看进程命令
  8. vue 执行函数this_在vue中使用回调函数,this调用无效的解决
  9. 互联网晚报 | 2月25日 星期五 | 元宇宙概念,热度显著下降;​腾讯正洽谈落地“东数西算”大湾区枢纽韶关数据中心集群...
  10. 进击的职场人 健康观念不容轻视——2021职场人健康状况调查报告