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

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

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

バージョン 4.0.3 以降

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

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

SFXTextEncoding::UTF16LEToUTF8(utf16str, &utf8str);

バージョン 4.0.3 以前

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

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

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

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

参照 SFXHelper::wstrtoutf8 | SFXAnsiString::SetLength