writeUTF寫入漢字占用空間字節(jié)數(shù)問題
不知道是不是64位系統(tǒng)問題,我這邊顯示當(dāng)使用WriteUTF輸入“中國”漢字時(shí),內(nèi)存中對(duì)應(yīng)的ASC碼值為 00 ?06 ?e4 ?b8 ?ad ?e5 ?9b ?bd ,總共占8字節(jié)。 我測試方法為: ? dos.write('A'); ? dos.writeUTF("中國"); ? dos.write('A'); ? dos.writeChars("中國"); ? dos.write('A');
2016-10-17
老師沒有講錯(cuò),在UTF-8編碼中,非英文的大部分字符占用3個(gè)字節(jié)。
wrteUTF()方法輸出的UTF-8編碼是“以與機(jī)器無關(guān)方式使用 UTF-8 修改版編碼?將一個(gè)字符串寫入基礎(chǔ)輸出流?!?/p>
首先,通過 writeShort 方法將兩個(gè)字節(jié)寫入輸出流,表示后跟的字節(jié)數(shù)。該值是實(shí)際寫出的字節(jié)數(shù),不是字符串的長度。
根據(jù)此長度,使用字符的 UTF-8 修改版編碼按順序輸出字符串的每個(gè)字符。
如果沒有拋出異常,則計(jì)數(shù)器 written 增加寫入輸出流的字節(jié)總數(shù)。
該值至少是 2 加 str 的長度,最多是 2 加 str 的三倍長度。?
2016-09-26
我的和你也是一樣
41 ?00 ?06 ?e4 ?b8 ?ad ?e5 ?9b ?bd ?41 ?4e ?2d ?56 ?fd ?41 ?
和老師也是一樣的,老師講錯(cuò)了,utf-8一個(gè)漢字可以占用3-4個(gè)字節(jié).
望采納~