`

Java字符编码

阅读更多

 

编码原理介绍(中文编码杂谈):

http://www.searchtb.com/2012/04/chinese_encode.html

 

int -> byte
可以直接使用强制类型转换: byte b = (byte) aInt;
这个操作是直接截取int中最低一个字节,如果int大于255,则值就会变得面目全非了

 

byte -> int
这里有两种情况,一种是要求保持值不变,例如进行数值计算,可采用强制类型转换:int i = (int) aByte;
另一种是要求保持最低字节中各个位不变,3个高字节全部用0填充,例如进行编解码操作,
则需要采用位操作(只要后8位):int i = b & 0xff;

 

 

/**采用UTF-8编码**/
public static void main(String[] args) {

		print("中");
		
		System.out.println("16进制转int进制:" + Integer.parseInt("E4", 16));
		System.out.println("16进制转byte进制:" + (byte) 0xE4);
		System.out.println("int转byte进制:" + (byte) 228);
		System.out.println("byte进制转int进制:" + (-28 & 0xff));
		
	}

/**字符转换为十进制数字**/
public static void print(String str) {
		if(str == null || str.equals("")) return;
		byte[] test = str.getBytes();
		String result = "";
		for (byte b : test) {
			result += "," + (b & 0xff);
		}
		System.out.println(result.substring(1));
	}

 

 运行结果:

 

228,184,173

16进制转int进制:228

16进制转byte进制:-28

int进制转byte进制:-28

byte进制转int进制:228

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics