J學(xué) 74 -27 -83 -90 ?utf-8?
```java
package com.string;
????public class CNStrTest {
????????public static void main(String[] args) {
???????? String str = "J學(xué)";
???????? byte[] b = str.getBytes();
???????? for (int i = 0; i < b.length; i++) {
???????????? System.out.print(b[i] + " ");
???????? }
????}
}
```
結(jié)果
```
74 -27 -83 -90?
```
2019-04-08
在java中,一個(gè)字符等于多少字節(jié)?
或者更詳細(xì)的問(wèn):在java中,一個(gè)英文字符等于多少字節(jié)?一個(gè)中文字符等于多少字節(jié)?
?
答案
Java采用unicode來(lái)表示字符,java中的一個(gè)char是2個(gè)字節(jié),一個(gè)中文或英文字符的unicode編碼都占2個(gè)字節(jié),但如果采用其他編碼方式,一個(gè)字符占用的字節(jié)數(shù)則各不相同。
在 GB 2312 編碼或 GBK 編碼中,一個(gè)英文字母字符存儲(chǔ)需要1個(gè)字節(jié),一個(gè)漢子字符存儲(chǔ)需要2個(gè)字節(jié)。
在UTF-8編碼中,一個(gè)英文字母字符存儲(chǔ)需要1個(gè)字節(jié),一個(gè)漢字字符儲(chǔ)存需要3到4個(gè)字節(jié)。
在UTF-16編碼中,一個(gè)英文字母字符存儲(chǔ)需要2個(gè)字節(jié),一個(gè)漢字字符儲(chǔ)存需要3到4個(gè)字節(jié)(Unicode擴(kuò)展區(qū)的一些漢字存儲(chǔ)需要4個(gè)字節(jié))。
在UTF-32編碼中,世界上任何字符的存儲(chǔ)都需要4個(gè)字節(jié)。
2019-04-08
UTF-8編碼長(zhǎng)度:3
GBK編碼長(zhǎng)度:2
GB2312編碼長(zhǎng)度:2
==========================================
字節(jié)長(zhǎng)度為:4
字符長(zhǎng)度為:2
-47 -89?
2019-04-08
? ?------運(yùn)行結(jié)果
UTF-8編碼長(zhǎng)度:3
GBK編碼長(zhǎng)度:2
GB2312編碼長(zhǎng)度:2
==========================================
2019-04-08
如果編碼方式為GBK,對(duì)于字符串“測(cè)試test”,字符長(zhǎng)度為6,字節(jié)長(zhǎng)度為8。
如果編碼方式為UTF_8,對(duì)于字符串“測(cè)試test”,字符長(zhǎng)度為6,字節(jié)長(zhǎng)度為10。