成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Java中的編碼理論

開發 后端
Java是使用Unicode字符集的,本文將為大家簡單介紹下在Java開發中的編碼理論,以及在實際開發過程中,會出現代碼反饋與預期存在差異的情況。

Java是使用Unicode字符集的,意思是在內存運行的時候是這樣的。當Java源程序被編譯為.class文件的時候,是以UTF-8字符集存儲字符的。比如字符串"漢語"的Unicode字符為:0x49 6C ED 8B。在.class文件中則變成了:0xE6 B1 89 E8 AF AD 0D 0A。實際上如果用以下程序輸出“漢語”二個字的16進制字節序列:

        String str = "漢語";

        try{
              byte[] b = str.getBytes("Unicode");
              for(int i : b){
              System.out.println(Integer.toHexString(i));
        }       
        }catch(Exception ex){
              ex.printStackTrace();  }

會發現,實際輸出的是 0xFE FF 6C 49 8B ED。多出來的0xFE FF,是Unicode字符串的BOM(Byte Order Mark)。但是為什么輸出的順序(0xFE FF 6C 49 8B ED)和文件中的順序不一致(0xFF FE 49 6C ED 8B)?

public byte[] getBytes(Charset charset) 使用指定的字符集將此 String 解碼為字節序列,并將結果存儲到一個新的字節數組中。如果不指定參數,則使用系統默認的字符集,對于簡體中文系統一般為GBK。

看程序:

class EncodingExer 
{
    public static void main(String[] args)
    {
          String str = "漢語";               //GBK編碼為: 0xBABA 0xD3EF
          byte[] b = str.getBytes();     
          for(int i : b){
              System.out.println(Integer.toHexString(i)); //0xBA 0xBA 0xD3 0xEF
          }    }}

在這個過程中,由Unicode字符得到字符串“漢語”,然后解碼得到了GBK字節序列。與String.getBytes()相對應的是new String(byte[] bytes,Charset charset),它的作用是用字節序列生成字符串。如果想由剛才的GBK字節序列得到原來的字符串“漢語”,我們需要做的是:new String(b) 就可以了。將b按照GBK編碼得到字符串“漢語”,然后轉化為Unicode字符。如果是str.getBytes("iso-8859-1"),那么還原的時候就是new String(b,"iso-8859-1")。總之就是用什么方式編碼,就用什么方式解碼。

【編輯推薦】

  1. Java語言中抽象類和接口的區別
  2. 痛批Java十大最無用特性
  3. 深入探索Java工作原理:JVM,內存回收及其他
責任編輯:彭凡 來源: 百度空間
相關推薦

2009-06-24 10:49:16

JavaScript

2011-03-22 09:33:39

J-Hi

2011-09-26 10:50:16

JavaScript

2011-08-04 09:35:09

Objective-C 編碼規范

2012-01-13 12:21:45

Java

2012-04-26 11:39:04

Javastatic變量

2009-07-20 17:41:59

Java JDBC

2021-06-10 18:59:41

Java編程語言

2012-03-22 09:31:14

Java

2009-06-22 14:13:00

java工具javadocjar

2013-09-11 09:49:18

Java數組集合

2011-07-05 10:20:38

java

2011-05-26 15:33:29

volatilejava

2011-07-14 15:23:34

java

2024-09-10 08:28:22

2009-06-03 10:24:11

LoadMaskSilverlight

2019-09-24 16:16:40

Redis數據結構數據庫

2009-05-06 11:09:10

Oracle物化視圖數據庫

2017-08-28 15:21:29

異步處理回調函數異步編程

2009-06-26 14:04:15

Quartz配置
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品在线看 | 在线伊人| 精品熟人一区二区三区四区 | 99reav| 亚洲精品中文字幕在线观看 | 成人免费福利 | 色影视 | 在线观看免费av片 | www.狠狠干 | 九七午夜剧场福利写真 | 成人欧美一区二区三区黑人孕妇 | 男人的天堂亚洲 | 中文字幕av一区二区三区 | 国产精品久久久免费 | 日韩在线播放一区 | 国产精品一级 | 国产日韩免费视频 | 狠狠色综合久久婷婷 | 在线观看免费福利 | 一区二区在线不卡 | 亚洲精品久久久久久久久久久 | 人人玩人人添人人澡欧美 | 四虎影视在线 | 精品国产青草久久久久福利 | 精品一区二区三区在线观看 | 日韩国产欧美一区 | 99免费视频 | 成年人免费网站 | 中文字幕在线观看一区 | 干干干日日日 | 国产精品视频免费观看 | 亚洲精品美女在线观看 | 日韩二区 | 狠狠综合网 | 好姑娘高清在线观看电影 | 中文字幕一区二区三区精彩视频 | 国产精品黄色 | 国产一区二区在线观看视频 | 欧美色综合一区二区三区 | 99riav国产一区二区三区 | 91精品在线观看入口 |