GBK编码文件为什么能在UTF-8平台上正常显示?
来源:互联网 发布:跳宅舞用什么软件 编辑:程序博客网 时间:2024/05/17 23:01
CharSetTest.java文件内容如下,在Windows下编译为class文件。
import java.nio.charset.Charset;import java.io.OutputStreamWriter;import java.io.ByteArrayOutputStream;public class CharSetTest { public static void main(String[] args) { System.out.println("Default Charset=" + Charset.defaultCharset()); System.setProperty("file.encoding", "Latin-1"); System.out.println("file.encoding=" + System.getProperty("file.encoding")); System.out.println("Default Charset=" + Charset.defaultCharset()); System.out.println("Default Charset in Use=" + getDefaultCharSet()); System.out.println("Default 字符集(在使用中的)=" + getDefaultCharSet()); } private static String getDefaultCharSet() { OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream()); String enc = writer.getEncoding(); return enc; }}
首先在本地Windows上运行:
D:\Apps\Java\jdk1.6.0_35\jre\bin\java.exe CharSetTest
Default Charset=GBK
file.encoding=Latin-1
Default Charset=GBK
Default Charset in Use=GBK
Default 字符集(在使用中的)=GBK
Default Charset=GBK
file.encoding=Latin-1
Default Charset=GBK
Default Charset in Use=GBK
Default 字符集(在使用中的)=GBK
D:\Apps\Java\jdk1.6.0_35\jre\bin\java.exe -Dfile.encoding=GBK CharSetTest
Default Charset=GBK
file.encoding=Latin-1
Default Charset=GBK
Default Charset in Use=GBK
Default 字符集(在使用中的)=GBK
file.encoding=Latin-1
Default Charset=GBK
Default Charset in Use=GBK
Default 字符集(在使用中的)=GBK
D:\Apps\Java\jdk1.6.0_35\jre\bin\java.exe -Dfile.encoding=UTF-8 CharSetTest
Default Charset=UTF-8
file.encoding=Latin-1
Default Charset=UTF-8
Default Charset in Use=UTF8
Default 瀛楃闆嗭紙鍦ㄤ娇鐢ㄤ腑鐨勶級=UTF8
Default Charset=UTF-8
file.encoding=Latin-1
Default Charset=UTF-8
Default Charset in Use=UTF8
Default 瀛楃闆嗭紙鍦ㄤ娇鐢ㄤ腑鐨勶級=UTF8
这个结果符合预期,因为文件本身是GBK编码的,使用UTF-8运行会出现乱码,但这个class文件ftp到Linux下运行的结果就比较奇怪了:
/opt/jdk1.6.0_35/bin/java CharSetTest
Default Charset=UTF-8
file.encoding=Latin-1
Default Charset=UTF-8
Default Charset in Use=UTF8
Default 字符集(在使用中的)=UTF8
file.encoding=Latin-1
Default Charset=UTF-8
Default Charset in Use=UTF8
Default 字符集(在使用中的)=UTF8
/opt/jdk1.6.0_35/bin/java -Dfile.encoding=GBK CharSetTest
Default Charset=GBK
file.encoding=Latin-1
Default Charset=GBK
Default Charset in Use=GBK
Default ؖ·՚ʹԃאµģ©=GBK
file.encoding=Latin-1
Default Charset=GBK
Default Charset in Use=GBK
Default ؖ·՚ʹԃאµģ©=GBK
/opt/jdk1.6.0_35/bin/java -Dfile.encoding=UTF-8 CharSetTest
Default Charset=UTF-8
file.encoding=Latin-1
Default Charset=UTF-8
Default Charset in Use=UTF8
Default 字符集(在使用中的)=UTF8
Default Charset=UTF-8
file.encoding=Latin-1
Default Charset=UTF-8
Default Charset in Use=UTF8
Default 字符集(在使用中的)=UTF8
为什么指定为GBK会出现乱码,使用UTF-8反而不会?
- GBK编码文件为什么能在UTF-8平台上正常显示?
- vim正常显示gbk编码文件
- 使ubuntu正常显示GB2312、GBK编码文件
- 使ubuntu正常显示GB2312、GBK编码文件
- 使ubuntu正常显示GB2312、GBK编码文件
- ISO 8859(GBK) 编码文件转码到UTF-8编码文件
- UTF-8编码的特殊字符,在GBK下显示?的问题
- GBK编码文件转UTF-8编码使用vim
- utf-8编码的中文字符在source in sight如何正常显示
- source-insight中文:utf-8编码的中文字符在source in sight如何正常显示
- source-insight中文:utf-8编码的中文字符在source in sight如何正常显示
- utf-8编码页面在IE6下不能正常显示 打开时出现空白面页
- utf-8编码的中文字符在source in sight如何正常显示
- iOS NSString正常显示GBK编码字符
- iOS NSString正常显示GBK编码字符 .
- iOS NSString正常显示GBK编码字符
- 编码:utf-8,unicode,gbk....
- 字符编码GBK,UTF-8
- windows 7下安装oracle 11g
- android常用控件学习之Button
- (转载)proc_create和create_proc_entry的区别
- 关于PHP的分页
- register ASP.NET An error has occurred: 0x8007b799
- GBK编码文件为什么能在UTF-8平台上正常显示?
- 浅谈文件的创建、读取及写入
- input 输入框 常用属性
- 《Linux内核完全注释》部分习题解答
- Spring 和struts 整合的三种方式
- CSTO沙龙第三期预告:给艺术插上科技的翅膀
- Linux下使用混杂模式抓包(2)
- ZendOptimizer
- Android + NDK + Eclipse 调试