タグ

文字数に関するchorinskyのブックマーク (1)

  • 文字数を正確にカウントするには?(サロゲート文字対応)[C#、VB] - @IT

    文字列の長さを取得する場合、基的には「TIPS:文字列の長さを取得するには?」で紹介しているように、文字列オブジェクト(=System名前空間のStringクラスのオブジェクト)のLengthプロパティを利用すればよい。 しかし、「文字列の長さ」と「文字数」は必ずしも一致しない可能性がある。というのも、Windows Vistaの登場などにより、Unicodeのサロゲート文字が(エンド・ユーザーにより)入力される可能性が出てきているからだ。 サロゲート文字(もしくはサロゲート・ペア文字)とは、通常「1文字=2bytes」のところが、「1文字=4bytes」となることがある文字のことだ。そのような「1文字=4bytes」のサロゲート文字の「文字列の長さ」を、先ほどのLengthプロパティを使って取得すると、「2」になる。正確な文字数は「1」なのに、文字列の長さは「2」と判定されてしまうのだ

  • 1