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