java 文件的编码 问题
生活随笔
收集整理的這篇文章主要介紹了
java 文件的编码 问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
package com.io;public class Encodedemo {public static void main(String[] args)throws Exception{// TODO Auto-generated method stubString s ="中國(guó)ABC";byte[] bytes1 = s.getBytes();//轉(zhuǎn)換成字節(jié)序列用的是項(xiàng)目默認(rèn)的字節(jié)編碼for(byte b:bytes1){//把字節(jié)轉(zhuǎn)換成int 以16進(jìn)制的方式顯示System.out.print(Integer.toHexString(b&0xff)+" ");}System.out.println();byte[] bytes2 = s.getBytes("gbk");//gbk編碼中文占用2個(gè)字節(jié),英文占用1個(gè)字節(jié)for(byte b:bytes2){//把字節(jié)轉(zhuǎn)換成int 以16進(jìn)制的方式顯示System.out.print(Integer.toHexString(b&0xff)+" ");}System.out.println();byte[] bytes3 = s.getBytes("utf-8");//utf-8編碼中文占用3個(gè)字節(jié),英文占用1個(gè)字節(jié)for(byte b:bytes3){//把字節(jié)轉(zhuǎn)換成int 以16進(jìn)制的方式顯示System.out.print(Integer.toHexString(b&0xff)+" ");}//java 是雙字節(jié)編碼 utf-16be//utf-16be中文占用2個(gè)字節(jié),英文占用2個(gè)字節(jié)
System.out.println();byte[] bytes4 = s.getBytes("utf-16be");//utf-8編碼中文占用3個(gè)字節(jié),英文占用1個(gè)字節(jié)for(byte b:bytes4){//把字節(jié)轉(zhuǎn)換成int 以16進(jìn)制的方式顯示System.out.print(Integer.toHexString(b&0xff)+" ");}System.out.println();/** 當(dāng)你的字節(jié)序列是某種編碼是,這個(gè)時(shí)候想把字節(jié)序列變成* 字符串,也需要用這種編碼方式,否者會(huì)出現(xiàn)亂碼*/String str1 = new String(bytes4);System.out.println(str1);String str2 = new String(bytes4,"utf-16be");System.out.println(str2);/** 文本文件 就是字節(jié)序列* 可以是任意編碼的字節(jié)序列* 如果我們?cè)谥形臋C(jī)器上直接創(chuàng)建文本文件 直接創(chuàng)建* 那么該文本文件只認(rèn)識(shí)ANSI編碼* 聯(lián)通、聯(lián)這是一種巧合,他們正好符合了utf-8編碼的規(guī)制*/}}
?
轉(zhuǎn)載于:https://www.cnblogs.com/loveincode/p/4491132.html
總結(jié)
以上是生活随笔為你收集整理的java 文件的编码 问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: posix thread线程
- 下一篇: PDF虚拟打印机怎么虚拟打印