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

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

Shift JIS 文字コードを Unicode (UTF-16) に変換する

バージョン 4.0.3 以降

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

SFXAnsiString shiftJISstr("abc");  // 変換したい Shift JIS 文字列
SFXWideString utf16str;

SFXTextEncoding::ShiftJISToUTF16LE(shiftJISstr, &utf16str);

バージョン 4.0.3 以前

Shift JIS 文字コードを Unicode (UTF-16) に変換するには、KDDI 拡張の
SFBKDDIUnicodeSJIS::SjistoUnicode16 関数を使用します。

SFXAnsiString shiftJISstr("abc");  // 変換したい Shift JIS 文字列
SFXWideString utf16str;

SFBKDDIUnicodeSJISSmp jis = SFBKDDIUnicodeSJIS::NewInstance();
if (jis != null) {
    utf16str.SetLength(shiftJISstr.GetLengthCString() * 2);
    
    // Shift-JISをUnicodeに変換する
    if (jis->SjistoUnicode16(&shiftJISstr, &utf16str)) { 
        // 変換成功

        utf16str = utf16str.Truncate(); // 末尾切り捨て
        // 変換後の文字列は utf16str に
    }
}

参照 SFBKDDIUnicodeSJIS::NewInstance | SFBKDDIUnicodeSJIS::SjistoUnicode16 |
SFXAnsiString::SetLength | SFXAnsiString::Truncate