ホーム > デベロッパ > SophiaFramework > BREW C++ 逆引きコード集

BREW C++ プログラミング : SophiaFramework 逆引き FAQ・コード集

UTF-8 文字コードを UTF-16 に変換する

バージョン 4.0.3 以降

SFXTextEncoding::UTF8ToUTF16BE() 関数または
SFXTextEncoding::UTF8ToUTF16LE() 関数を利用することができます。

SFXAnsiString utf8str("abc");  // 変換したい UTF-8 文字列
SFXWideString utf16str;

SFXTextEncoding::UTF8ToUTF16LE(utf8str, &utf16str);

バージョン 4.0.3 以前

UTF-8 文字コードを UTF-16 に変換するには、SFXHelper::utf8towstr 関数を使用します。

SFXAnsiString utf8str("abc");  // 変換したい UTF-8 文字列
SFXWideString utf16str;

// あらかじめ領域を確保
utf16str.SetLength(utf8str.GetLengthCString());

// UTF-8をUTF-16に変換するSFのヘルパー関数
if (SFXHelper::utf8towstr(
    utf8str.GetCString(), utf8str.GetLengthCString(),
    utf16str.GetBuffer(), utf16str.GetLength() * 2)) {
    
    // 成功した場合
    
    utf16str = utf16str.Truncate(); // 末尾切り捨て
    // 変換完了
}

参照 SFXHelper::utf8towstr | SFXAnsiString::SetLength