亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

gbk編碼下 大寫字母A是一個字節嗎

這里老師說只能寫進去后八位 這里大寫A是兩位的嗎

正在回答

3 回答

首先,gbk編碼方式是中文占兩個字節,英文占1個字節。但是,Java是雙字節編碼,采用的是utf-16be編碼方式,而utf-16be編碼是中文和英文都占兩個字節。這里的write()寫A、B、i ?都是采用的Java默認的編碼,只是后面的漢字“中”才采用的gbk編碼,所以老師getBytes("gbk")傳入了編碼方式。

因為A是char 型,16位,本身是占兩個字節。我猜你是上面這個知識點沒弄明白。

這里老師就是想說明write()方法一次只能寫一個字節,所以這里A只寫了后8位,所以A是沒有讀寫完的。但是后面能正常被read()讀出來,是因為A本身后8位字節就表示它了(01000001),前8位都是0。


0 回復 有任何疑惑可以回復我~
#1

藍_zz小姐

也說Java采用的utf-16編碼,或稱為unicode編碼,反正是一個意思,中英文都占兩個字節。
2017-12-05 回復 有任何疑惑可以回復我~

首先,gbk編碼方式是中文占兩個字節,英文占1個字節。但是,Java是雙字節編碼,采用的是utf-16be編碼方式,而utf-16be編碼是中文和英文都占兩個字節。這里的write()寫A、B、i ?都是采用的Java默認的編碼,只是后面的漢字“中”才采用的gbk編碼,所以老師getBytes("gbk")傳入了編碼方式。

因為A是char 型,16位,本身是占兩個字節。我猜你是上面這個知識點沒弄明白。

這里老師就是想說明write()方法一次只能寫一個字節,所以這里A只讀了后8位,所以A是沒有讀完的。但是后面能正常被read()出來,是因為A本身后8位字節就表示它了(01000001),前8位都是0。

0 回復 有任何疑惑可以回復我~
#1

qq_慕后端9416733

中文那里不是很懂,中文在GBK的編碼下不是占兩個字節嗎?然后write只寫入一個字節,但結果是把兩個字節都寫進去了。這是為什么呢?
2018-07-27 回復 有任何疑惑可以回復我~

gbk編碼下英語字母是一個字節,,這里的write()方法是只能寫一個字節,所以如果是A的話就可以只寫一次,就能寫完,但如果是漢字的話,占兩個字節,因為一次只能寫一個字節,所以要寫兩次。。老師的意思只是說明write()方法一次只能寫一個字節,不是說A占兩個字節。

0 回復 有任何疑惑可以回復我~
#1

慕移動7208282 提問者

有一個地方不太懂。老師說A前八位和后八位,只能把后八位寫進去,但是后八位直接可以表示這個A,因為前邊都是0。 那這個不就是A是16位也就是2個字節了。。。
2017-10-31 回復 有任何疑惑可以回復我~
#2

慕移動7208282 提問者

是不是A 是一個字節 但是char是兩個字節 這么理解正確嗎
2017-10-31 回復 有任何疑惑可以回復我~
#3

密蒙 回復 慕移動7208282 提問者

是哦,應該就是你理解的,,,A在存儲時肯定是當做char來存儲的
2017-10-31 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

gbk編碼下 大寫字母A是一個字節嗎

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號