前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3

11.3. 文字列処理クラス

11.3.1. 文字の判定と変換

SFXAsciiSFXShiftJIS クラスは文字(列)の変換や種類判定のためのクラスです。

例 11.26. ASCII 文字の種類判定処理

AChar x('a'), y('7');

if (SFXAscii::IsAlpha(x)) {

	// x が英文字のとき
        ...
}

if (SFXAscii::IsDigit(y)) {

	// y が数字のとき
        ...
}

例 11.27. 日本語文字(Shift_JIS)の種類判定処理

SFXWideString wstr("あいうえおABCDE");

if (SFXShiftJIS::IsFullAlpha(wstr[6])) {

	// wstr 文字列の 7 番目の文字が全角英字のとき
        ...
}

if (SFXShiftJIS::IsFullHiragana(wstr[3])) {

	// wstr 文字列の 4 番目の文字が全角ひらがなのとき
        ...
}

例 11.28. ASCII 文字の変換処理

// 文字を小文字に変換する
AChar character1 = SFXAscii::AsLower('A');

// 文字を大文字に変換する
AChar character2 = SFXAscii::AsUpper('a');

例 11.29. 日本語文字(Shift_JIS)の変換処理

SFXWideString wstr("あいうえおABCDE");

// 文字列内のひらがなをカタカナに変換する
SFXShiftJIS::HiraganaToKatakana(&wstr);

// 文字列内の半角英字を全角に変換する
SFXShiftJIS::ToFullAlpha(&wstr);

11.3.2. 文字エンコードの変換

文字エンコードの変換は、SFXTextEncoding クラスを使用して以下のように行います。

例 11.30. 文字エンコードの変換

SFXAnsiString shiftJIS_string("あいうえお"); // 変換前文字列(Shift_JIS)
SFXAnsiString utf8_string;                   // 変換後文字列(UTF-8)
SFXAnsiString utf16be_string;                // 変換後文字列(UTF-16BE)
SFCError error(SFERR_NO_ERROR);              // エラー値

// Shift_JIS から UTF-8 への文字エンコードの変換
error = ShiftJISToUTF8(shiftJIS_string, &utf8_string);

// UTF-8 から UTF-16BE への文字エンコードの変換
error = UTF8ToUTF16BE(utf8_string, &utf16be_string);
[Note] 前提条件

上記コードは、Shift_JIS でエンコーディングされているものとします。

表 11.3. 文字エンコード変換表

変換元|変換先 UTF-8 UTF-16BE UTF-16LE UTF-32BE UTF-32LE Shift_JIS EUC-JP EUC-CN
UTF-8
UTF-16BE ×
UTF-16LE ×
UTF-32BE ×
UTF-32LE ×
Shift_JIS ×
EUC-JP ×
EUC-CN × ×