質問: javaで日本語1文字のバイト数 javaで日本語1文字のバイト数はいくつになるのでしょうか。 単純に2バイトではないような書き込みを見たことがあるのですが本当でしょうか。 2バイト以外は特殊な文字で「あいうえお山川」のような通常使う文字が2バイト ということでしょうか。 また、c言語(c#も含む?)であれば全角は2バイト、半角は1バイトで計算できると いうのは本当でしょうか。
回答: どんなデータ形で記憶するのか、どの文字コード系を採用したかによります。 stringやchar[]では、 1文字は16bitです。 string.getbyte()等でbyte[]に記憶する場合は、その文字コード次第です。 shift_jis,euc-jpでは、いわゆる「全角文字」は2バイトです。 utf-8は1~6バイトです。日本語で使われる文字は、大体3バイトです。 c言語でも事情は同じようなものです。 「全角は2バイト、半角は1バイト」というのは、utf-8が普及するまではshift_jisやeuc-jpが一般的だったため、そうだと決めつけてしまっているだけです。(特に古い入門書等)