0
ICUのStringCharacterIterator
を使用して、送信元文字列から送信先文字列に文字をコピー(および場合によっては変更)しようとしています。しかし、私は予期しない結果を抱えており、理由は不明です。(ICU4C)Unicode文字列を文字単位で別のUnicode文字列にコピーする方法は?
私はこのプログラムの出力の最後の行がdog
ことを期待するだろうが、その代わり、私はog∩┐┐
#include <iostream>
#include <icu4c/unicode/schriter.h>
int main()
{
UnicodeString dog = UnicodeString::fromUTF8("dog");
StringCharacterIterator chars(dog);
UnicodeString copy;
while(chars.hasNext())
copy.append(chars.next32());
for(int i=0; i<copy.countChar32(); i++)
{
int32_t charNumber = copy.char32At(i);
std::cout << charNumber << "\n";
}
std::string stdString;
copy.toUTF8String(stdString);
std::cout << stdString;
}
プログラム出力
111
103
65535
og￿
Unicodeのテーブル
111を取得します - ラテン小文字o
103 - ラテン小さな文字g