SSブログ

PebbleOSでの文字列の扱い方 [Pebble]

Pebble側のOSはPebbleOSと呼ばれていますが、WatchappもWatchfaceもC言語で開発します。
PebbleOSのC言語での文字列の扱い方は、内部コードはUTF-8となっていますが、マルチバイト文字の扱いが原始的です。
文字列リテラルには、"ABCあいう漢字" というように漢字は使用できます。
しかし、strcmp()等の文字列処理関数は、シングルバイト文字のみでの対応となっているので、
UTF-8について詳しく知る必要があるようです。

char str = "あいう";
int length =0;
length = strlen(str);

実行結果のlengthの値は、9になります。

ひらがなは、UTF-8では3バイトになっているようです。
UTF-8の「あ」を調べてみると...
「あ」 のUTF-8のバイト列は、E3 81 82 と3バイトになっています。
「い」は、E3 81 84
「う」は、E3 81 86
文字列"あいう"は、終端文字(0x00)を含めると、
E3 81 82 E3 81 84 E3 81 86 00
の10バイトをメモリー上に格納されることになります。

なので、和文や絵文字、ギリシア文字等ASCII文字以外を扱う場合は、
strlen()で文字数を求めることはできないです。





nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:blog

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。