Java中String字符串默认编码

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;


public class EcodingTest2 {

	/**
	 * file.encoding的值保存的是每个程序的main入口的那个java文件的保存编码,是.java文件的编码。
	 * Charset.defaultCharset()
	 * 1、如果使用了eclipse,由java文件的编码决定
	 * 2、如果没有使用eclipse,则有本地电脑语言环境决定,中国的都是默认GBK编码
	 * System.getProperty("user.language"));
	 * 用户使用的语言,而非编码方式
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		//获取系统默认编码
		System.out.println("系统默认编码:    "+System.getProperty("file.encoding"));//查询结果GBK
		//系统默认字符编码
		System.out.println("系统默认字符编码:"+Charset.defaultCharset()); //查询结果GBK
		//操作系统用户使用的语言
		System.out.println("系统默认语言:"+ System.getProperty("user.language")); //查询结果zh
		//定义字符串包含数字和中文
       String t = "1a我";
       //通过getBytes方法获取默认的编码
       System.out.println("默认编码格式:");
       byte[] b = t.getBytes();//ASCII,GBK,UTF-8对数字和英文字母的编码相同,对汉字的编码不同,unicode的编码跟前面三项都不同
       //打印默认编码
       for (byte c : b) {
    	   System.out.print(c+",\t");
       }
       System.out.println();
       //打印GBK编码
       System.out.println("GBK编码格式:");
       b = t.getBytes("GBK");
       for (byte c : b) {
   			System.out.print(c+",\t");
       }
       System.out.println();
     //打印GBK编码
       System.out.println("UTF-8编码格式:");
       b = t.getBytes("UTF-8");
       for (byte c : b) {
    	   System.out.print(c+",\t");
       }
       System.out.println();
     //打印GBK编码
       System.out.println("ASCII编码格式:");
       b = t.getBytes("ASCII");
       for (byte c : b) {
    	   System.out.print(c+",\t");
       }
       System.out.println();
     //打印GBK编码
       System.out.println("UNICODE编码格式:");
       b = t.getBytes("UNICODE");
       for (byte c : b) {
    	   System.out.print(c+",\t");
       }

	}

}

打印结果为:
系统默认编码:    UTF-8
系统默认字符编码:UTF-8
系统默认语言:zh
默认编码格式:
49,	97,	-26,	-120,	-111,	
GBK编码格式:
49,	97,	-50,	-46,	
UTF-8编码格式:
49,	97,	-26,	-120,	-111,	
ASCII编码格式:
49,	97,	63,	
UNICODE编码格式:
-2,	-1,	0,	49,	0,	97,	98,	17,	

分析:
  系统默认编码和系统默认字符编码分别是通过两种方式获取的编码格式, 本例中用Myeclipse编写的代码,并在Java文件的Properties->Resorce->Text file encoding 中修改
为编码格式为UTF-8.结果中查询到的编码方式和String默认编码都是UTF-8.
  后续又测试了修改Java文档保存编码格式为GBK时的情况,查询结果如下:
系统默认编码:    GBK
系统默认字符编码:GBK
系统默认语言:zh
默认编码格式:
49,	97,	-50,	-46,	
GBK编码格式:
49,	97,	-50,	-46,	
UTF-8编码格式:
49,	97,	-26,	-120,	-111,	
ASCII编码格式:
49,	97,	63,	
UNICODE编码格式:
-2,	-1,	0,	49,	0,	97,	98,	17,
  说明String数据使用的编码格式同系统使用的编码相同.而系统的编码方式遵循以下原则:
	
	1、如果使用了eclipse,由java文件的编码决定
	2、如果没有使用eclipse,则有本地电脑语言环境决定,中国的都是默认GBK编码



  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值