UTF-16の文字列の(バイト数ではなく)文字数を数えるにはどうしたら良いですか? 先頭のビットを見れば良いでしょうか? 範囲の出ているサイトも教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/04/20 17:38:40
  • 終了:--

回答(2件)

id:tokyo_xjp No.1

tokyo_xjp回答回数284ベストアンサー獲得回数02005/04/20 18:33:15

http://ash.jp/code/index.htm

$BJ8;z%3!<%I$K$D$$$F(B

こちらのサイトが参考になりませんか

id:zetaplus No.2

zetaplus回答回数52ベストアンサー獲得回数12005/04/20 20:23:14

ポイント50pt

UTF-16は基本的に2バイトで構成されますので、2バイトずつ見ていけば文字列長はわかります。

但し、UTF-16の場合バイトオーダーの関係でBOM(バイトオーダーマーク)が付くことがあります。ですからBOMをスキップする処理が必要です。なお、UTF-16BEやUTF-16LEの場合には、通常BOMは付けません。

またUCS-2で表せられない文字(0x10000~0x10ffff)の場合、サロゲートと言う方法で表現します。その場合、4バイトで1文字を表します。ですので、サロゲートの判定処理も必要になります。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません