タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

c++とunicodeに関するnilabのブックマーク (2)

  • UTF-8 + 文字数カウント - Bits of Log

    C++UTF-8 の文字数を数えるコードを試しに書いてみたメモ。 バイト数ではなく、文字数。 #include #include int strlen_utf8( const char *buff ) { if( buff == NULL ) return 0; int count = 0; int pos = 0; int max_bytes = strlen( buff ); // BOM 読み飛ばし if( max_bytes >= 3 ) { if( static_cast( buff[0] ) == 0xEF && static_cast( buff[1] ) == 0xBB && static_cast( buff[2] ) == 0xBF ) { pos += 3; } } while( pos < max_bytes ) { ++count; // 文字数カウント i

    UTF-8 + 文字数カウント - Bits of Log
    nilab
    nilab 2012/01/06
    UTF-8 文字数カウント | ninxit.blog : 「UTF-8 は1バイト目に後に続くバイト数が示されている為、簡単に実装できた」
  • UTF-8 の文字列を操作するための補助関数群 - Cube Lilac

    UTF-8 の文字列を操作するための補助関数群を作ってみました.当初,find() などの特定の文字列を見つける部分の実装が面倒そうだなぁと思っていたのですが,UTF-8 の 2 バイト目以降には 1 バイト目に出現しうる値は出現しないのですね. ビットパターンは以下のようになっている。 0xxxxxxx (00-7f) 7bit 110yyyyx 10xxxxxx (c0-df)(80-bf) 11bit 1110yyyy 10yxxxxx 10xxxxxx (e0-ef)(80-bf)(80-bf) 16bit 11110yyy 10yyxxxx 10xxxxxx 10xxxxxx (f0-f7)(80-bf)(80-bf)(80-bf) 21bit UTF-8 - Wikipedia そんな訳で find() などは std::string の find() をそのまま使えば良さそう

    UTF-8 の文字列を操作するための補助関数群 - Cube Lilac
    nilab
    nilab 2011/05/27
    UTF-8 の文字列を操作するための補助関数群 - Life like a clown : CLX C++ Libraries
  • 1