`
talentluke
  • 浏览: 606181 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

file.encoding

阅读更多

参考链接

 

http://blog.csdn.net/zhuyijian135757/article/details/37706437

 

http://blog.csdn.net/elia1208/article/details/6329428

 

http://blog.csdn.net/huoyunshen88/article/details/25896677

 

http://code-chris.iteye.com/blog/365157

 

 

1.tomcat环境中file.encoding引发的思考

 

编码问题总结:

 

linux 系统默认编码utf-8

修改和查看linux编码问题:

[html] view plaincopy在CODE上查看代码片派生到我的代码片

[root@test-1 ~]# vi /etc/sysconfig/i18n  

LANG="en_US.UTF-8"  

SYSFONT="latarcyrheb-sun16"  

linux默认编码UFT-8,终端输出默认编码自然是UTF-8,window中使用secureCRT默认编码是GBK,

链接到linux系统输出乱码,因为Linux默认是utf-8,所以把secureCRT的默认编码修改为utf-8就ok。

 

WINDOWS 默认编码GBK

了解了系统平台的的编码,才容易解决编码问题。

WIN7中tomcat启动的控制台默认编码是GBK,一般软件默认采用系统默认字符集。

tomcat的应用一般常用的国际编码是utf-8,应用输出采用系统默认编码GBK,

所以乱码,再启动jvm时设置成-Dfile.encoding="UTF-8",应用乱码问题解决。

 

 

 

file.encoding默认的字符集跟操作系统有关,中文操作系统下面默认的字符集是GBK,如果流程定义的xml文件中用UTF-8,

 

则不能正确转换,所以需要修改file.encoding的值为UTF-8。

 

部署在tomcat中的文件要修改file.encoding的值,可以在tomcat的catalina.bat文件中set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%的后面加上 -Dfile.encoding="UTF-8"

 

 

java File_encoding属性

windows下一般是GBK. 指定编码方式也很简单,  java  -Dfile.encoding=utf-8   xxxx (需要执行的class文件)

 

下面来看下 file.encoding 这个属性的英文解释.

 

This property is used for the default encoding in Java, all readers and writers would default to use this property. “file.encoding” is set to the default locale of 

 

Windows operationg system since Java 1.4.2. System.getProperty(“file.encoding”) can be used to access this property. Code such as System.setProperty(“file.encoding

 

”, “UTF-8”) can be used to change this property. However, the default encoding can not be changed dynamically even this property can be changed. So the conclusion 

 

is that the default encoding can’t be changed after JVM starts. “java -Dfile.encoding=UTF-8” can be used to set the default encoding when starting a JVM. I have 

 

searched for this option Java official documentation. But I can’t find it.

 

 

大致的意思主要下面几点:

 

1. java内所有的reader和 writer操作默认都是用 file.encoding这个系统属性作为编码方式的,看代码:

 

[java] view plaincopy

//way1  

String html1="<html>...</html>";  

FileWriter writer1=new FileWriter(new File("C:\\xxxx.html"));  

writer1.write(html1);  

writer1.close();  

  

//way2  

String html2="<html>...</html>";  

OutputStreamWriter writer2=new OutputStreamWriter(new FileOutputStream  

        (new File("C:\\xxxx.html")),"utf-8");  

writer2.write(html2);  

writer2.close();  

 

 

 

第一种方法默认会用 file.encoding 这个属性对文件进行编码,然后输出.一旦你执行class文件的时候没有指定该属性, 默认就会用操作系统本身编码方式,如gbk等.

第二种方式指定了文件编码方式,并输出.

 

偶项目中的遇到异常就是由第一种方法导致的,刚开始我用第二种方式去解决的,但是这只能解决这一地方,其他没发现的就不好解决了. 更好的解决,看注意点2.

 

2.JVM启动之前如果未指定file.encoding这个属性,这个属性就会默认为操作系统编码方式, JVM启动如果指定了file.encoding这个属性,整个项目都会用这个属性

 

作为reader和writer操作的默认编码方式,并且在一个运行的应用程序中

 

file.encoding的值只有一个,并且值为入口函数的保存编码的值,不会被后面的覆盖。

 

so,解决问题最好的方式就是在启动项目时就知道file.encoding这个属性,后续的读写操作没有特殊编码需要的划,都可以继承过来使用.

 

 

 

分享到:
评论

相关推荐

    java 中file.encoding的设置详解

    在Java编程语言中,`file.encoding`是一个非常重要的系统属性,它定义了默认的字符编码。这个属性在处理文件输入输出、字符串与字节数组转换时起到关键作用。本文将深入探讨`file.encoding`的设置及其在Java中的工作...

    在CentOS上安装Jenkins的详细记录

    --logfile=/mnt/md/opt/jenkins-2.319.3-lts/jenkins.log ``` 这条命令设置了Jenkins的主目录、Java路径、启动端口(这里是80)以及日志文件位置。 5. **初始化Jenkins**: 启动Jenkins后,系统会提示初始安装...

    Maven发布Jar包中文乱码解决方法

    3. 在项目的 resource 文件夹下添加一个资源文件 encoding.properties,内容如下: `encoding=UTF-8` 三、详细说明 在 Maven 中,编译和打包过程中使用的字符集是可以配置的。Maven 提供了多种方式来设置字符集,...

    vs FileEncoding插件 2019

    《Visual Studio FileEncoding插件:提升代码编辑体验的利器》 在软件开发过程中,文件编码格式的选择和管理是不可忽视的重要环节。尤其是在处理跨平台或多语言项目时,正确的编码格式能确保代码的可读性和兼容性。...

    java字符编码转换详细过程

    1. **从`file.encoding`编码到Unicode编码**:当使用JDK中的`javac.exe`编译Java源代码时,如果不显式指定编码方式,编译器会自动检测操作系统默认的`file.encoding`属性,并将其作为源文件的编码格式。例如,在中文...

    java中文乱码字符集.pdf

    - 编译过程:`javac`编译时,如果没有指定编码(如`-encoding`选项),则使用`file.encoding`系统属性的值,例如GBK。如果源文件实际编码与`file.encoding`不符,编译后的字节码(class文件)可能会包含错误的Unicode...

    中文乱码.docx

    对于运行在Tomcat服务器上的Java应用而言,可以通过设置`file.encoding`参数来指定系统的默认文件编码格式为UTF-8,从而避免中文乱码问题的发生。 #### 三、具体实施步骤 ##### 1. Windows环境下的配置方法 在...

    JSP乱码解方案.doc

    但在英文系统环境下,例如LANG设置为en_US的Linux、AIX或Solaris,需要将JVM的`file.encoding`设置为GBK,以防止乱码。 2. **Java编译**:JSP被编译为Java源文件,此过程同样受到`file.encoding`的影响。无论JSP...

    Java字符转换[参照].pdf

    例如,在英文操作系统下,通过添加特定的启动参数,如`-Dclient.encoding.override=GBK -Dfile.encoding=GBK -Duser.language=zh -Duser.region=CN`,可以强制JVM运行在中文环境中。 Java源代码的编译过程,通常会...

    一个进行文件编码的jar包

    一个进行文件编码的jar包,使用方式就像jstl一样的,页面进行地址短编码很方便。

    06:File.pdf

    将指定的字符串追加到文件中,如果文件还不存在则创建该文件。 public static void AppendAllText(string path, string contents); public static void AppendAllText...using (Stream s = File.Create(filePath)) {

    JSP解决乱码与数据库乱码解决

    - **问题描述**:在非中文操作系统(如英文版Linux、AIX或Solaris)下,默认情况下,JVM的`file.encoding`属性可能设置为不符合中文编码的值,从而导致读取和编译JSP文件时出现乱码。 - **解决方案**:设置JVM的`...

    FileEncodingConverter文件编码转换工具

    【FileEncodingConverter文件编码转换工具】是一款高效实用的软件,主要功能是帮助用户解决不同文件在编码格式上遇到的问题。在计算机科学中,文件编码决定了文本文件中的字符如何被存储和解析,不同的编码方式(如...

    深入剖析Java编程中的中文问题及建议最优解决方法.pdf

    1. 设置正确的file.encoding:在开发环境中,可以通过修改JDK启动参数 `-Dfile.encoding=UTF-8` 来确保源文件的正确解析。 2. 使用统一的编码:在项目中,尽量使用UTF-8作为统一的编码标准,包括源代码、数据库存储...

    java编码转换的详细过程.pdf

    在编译过程中,如果没有指定源程序文件的编码格式,javac.exe 将获得操作系统默认的编码格式,然后将源程序文件从 file.encoding 编码格式转化为 Java 内部默认的 UNICODE 格式,并将其编译成.class 文件。...

    Websphere Application Server 6.1乱码问题解决办法

    7. 配置“file.encoding”属性:在新建的属性中,输入“名称”为“file.encoding”,“值”为“UTF8”,“描述”可填“file”,然后点击“确定”。这个属性设置决定了系统读取文件时使用的编码格式。 8. 配置...

    Protege中文问题的解决方案

    如果要改变 Protege 的默认编码,可以在 protege.lax 文件中添加一行:protege.file.encoding=GBK。这将使 Protege 使用 GBK 编码。 2. Protege 中文支持 Protege 对中文的支持是没问题的,因为 UTF-8 支持中文。...

    jsp中文乱码问题分析及处理方法.pdf

    1. **JSP编译阶段**:Java应用服务器在编译JSP文件时,默认使用JVM的`file.encoding`属性值读取源文件,并编译生成Java源文件。之后,再根据`file.encoding`的值将文件写入文件系统。如果这个值与实际的字符集不符,...

    java编码格式(对常见的java中文乱码作出分析及提出解决方案)

    3. **运行时配置**:设置`file.encoding`环境变量为正确的编码,或者在代码中使用`System.setProperty("file.encoding", "UTF-8")`来覆盖默认值。 4. **I/O流处理**:在读写文件或网络数据时,明确指定输入输出流的...

    JSP乱码 web

    - 如果服务器运行环境为英文系统,如LANG为`en_US`的Linux/AIX/Solaris系统,也需要相应地调整`file.encoding`值。 - 对于GB2312编码的系统,根据实际需求决定是否设置`file.encoding`为`GBK`。 ##### 2. Java...

Global site tag (gtag.js) - Google Analytics