大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java字符串編碼的介紹

Java字符串編碼的介紹

更新時間:2022-11-01 10:14:46 來源:動力節點 瀏覽1794次

在 Java 中,當我們處理String時,有時需要將字符串編碼為特定字符集。編碼是一種將數據從一種格式轉換為另一種格式的方法。字符串對象使用 UTF-16 編碼。UTF-16 的問題在于它不能被修改。只有一種方法可以用來獲得不同的編碼,即 byte[] 數組。如果我們得到意外的數據,編碼的方式是不合適的。在本節中,我們將學習如何在Java中對字符串進行編碼。

在繼續本節之前,我們必須了解字符編碼。讓我們快速瀏覽一下。讓我們了解為什么我們需要對字符串進行編碼。

字符編碼是一種將文本數據轉換為二進制數的技術。我們可以為特定字符分配唯一的數值,并將這些數字轉換為二進制語言。這些二進制數稍后可以根據它們的值轉換回原始字符。

問題

假設我們有德語字符串Tschüss,需要對其進行編碼。考慮以下代碼片段:

字符串 str =  "Tschüss" ;   
字節[] bytesOfString = str.getBytes();   
String encoded_String =  new  String(bytesOfString, StandardCharsets.US_ASCII); assertNotEquals(encoded_String, str);  

如果我們使用 US_ASCII 對字符串進行編碼,它會給出Tsch?ss,因為 US_ASCII 編碼不理解非 ASCII 字符 ( ü )。當我們將 ASCII 編碼的字符串轉換為 UTF-8 時,我們得到相同的字符串。

字符串 str =  "再見" ;   
字節[] bytesOfString = str.getBytes();   
String asciiEncondedEnglishString =  new  String(bytesOfString, StandardCharsets.US_ASCII);   
assertEquals(encoded_String, str);  

如果 byte[] 數組包含非 Unicode 文本,我們可以使用String構造函數將文本轉換為 Unicode。相反,我們也可以使用String.getBytes()方法將 String 對象轉換為非 Unicode 字符的 byte[] 數組。讓我們使用getBytes()方法對字符串進行編碼。

使用 String.getBytes() 方法

Java String類提供了getBytes() 方法,用于將字符串編碼為 UTF-8。該方法將字符串轉換為字節序列并將結果存儲到數組中。

句法:

公共字節[] getBytes(String charsetName) 拋出 UnsupportedEncodingException   

它將 charsetName 解析為參數并返回字節數組。如果不支持命名字符集,它會拋出UnsupportedEncodingException 。

讓我們創建一個將字符串轉換為 UTF-8 編碼的 Java 程序。

StringEncodingExample.java

公共類 StringEncodingExample    
{  
公共靜態void  main(String args[]) 拋出 異常    
{  
//要編碼的字符串      
字符串 str =  "谷歌云" ;  
//調用getBytes()方法并將一個字節數組存入array[]  
字節 數組[] = str.getBytes( "UTF8" );  
System.out.println( "編碼字符串:" );  
//增強的循環遍歷數組  
對于 (字節 x:數組)   
{  
//打印字節序列      
System.out.print(x+ " " );  
}  
}  
}  

輸出:

編碼字符串:
71 111 111 103 108 101 32 67 108 111 117 100

使用 StandardCharsets 類

我們還可以使用 StandardCharset 類對字符串進行編碼。對字符串進行編碼有兩個步驟。首先,將字符串解碼為字節,然后將其編碼為 UTF-8。例如,考慮以下代碼:

字符串 str =  "Tschüss" ;   
ByteBuffer 緩沖區 = StandardCharsets.UTF_8.encode(str);   
String encoded_String = StandardCharsets.UTF_8.decode(buffer).toString(); assertEquals(str, encoded_String);  

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 天天干天天干天天干天天 | 日日操视频 | 久久精品观看影院2828 | 本道综合| 欧美午夜在线视频 | 日韩欧美一区二区三区不卡 | 伊人免费视频二 | 久久爱99re| 成人毛片在线视频 | 四虎b789ucom| 国产高清亚洲 | 精品综合久久久久久97超人 | 98色花堂永久地址国产精品 | 国产成人精品免费视频大全办公室 | 九九视频免费在线 | 4huh34四虎最新| 美女视频黄a视频免费全过程在线 | 波多野吉衣一区二区三区四区 | 国产成人精品高清免费 | 亚洲成a人伦理 | 亚洲综合色婷婷中文字幕 | 永久黄网站色视频免费 | 毛片站 | 91大神在线精品视频一区 | 日韩欧美国产偷亚洲清高 | 91久久线看在观草草青青 | 日本私人影院 | 国产成人精品视频一区二区不卡 | 夜夜夜夜夜夜爽噜噜噜噜噜噜 | 黄色片在线观看网址 | 日本欧美韩国专区 | 国产不卡在线观看 | 免费可以直接观看的毛片 | 国产毛片一区二区 | 免费观看精品视频999 | 99精品视频免费观看 | 国产免费青青青免费视频观看 | 亚洲va欧美va国产 | 一级毛片高清免费播放 | 亚洲国产人久久久成人精品网站 | 国产精品玖玖玖在线观看 |