Java高级语法笔记-字符集与中文编码
生活随笔
收集整理的這篇文章主要介紹了
Java高级语法笔记-字符集与中文编码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
字符集與中文編碼
ASCII: 最簡單的字符集,一共收集了幾十個字符。( 該字符集的編號:ISO/IEC 646 )
ISO/IEC 646: 即ISO發布的第646號標準其他字符集:
ISO 8859-1 :ISO發布的第8859號標準的第1部分,涵蓋了西歐的常用字符(德文、法文)
給定一串字節數據,如果不說明它的字符集及編碼方式,我們就無法知道它代表了哪些字符。
比如,
byte[] data = {
(byte)0x61, (byte)0x62, (byte)0xD6,
(byte)0xD0, (byte)0xB9, (byte)0xFA
};
如果知道它是GBK編碼,則我們知道它是"ab中國"
如果不知道它的編碼,則無法確定它到底代表什么。
注意
源文件*.java本身也有一個編碼問題但*.java在編譯之后,會統一轉成Unicod
代碼如下:
HelloWorld.java
package my;import java.io.UnsupportedEncodingException; import java.nio.charset.Charset;import javax.naming.ldap.UnsolicitedNotificationEvent;;public class HelloWorld {//byte[]->Stringpublic void test1() {byte[] data= {(byte)0x61,(byte)0x62,(byte)0xD6,(byte)0xD0,(byte)0XB9,(byte)0XFA};try {String s=new String(data,"GBK");System.out.println(s);}catch(UnsupportedEncodingException e) {e.printStackTrace();}}//String->byte[]public void test() {String str="中國";try {byte[]data=str.getBytes("GBK");System.out.println("data length: "+data.length);}catch(UnsupportedEncodingException e) {e.printStackTrace();}}public static void main(String[] args){ char ch1='a';char ch2='中';String str="ab中國";int length=str.length();HelloWorld t=new HelloWorld();t.test();t.test1();//檢測默認字符集Charset cs=Charset.defaultCharset();System.out.println("默認字符集:"+cs.toString());} }運行截圖如下:
總結
以上是生活随笔為你收集整理的Java高级语法笔记-字符集与中文编码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编预备知识(二)
- 下一篇: Java高级语法笔记-接口(interf