PrevNextUpHome BREW C++ Class Library & GUI Framework & XML Middleware : SophiaFramework 4.1

11.2. Checking and Converting the Character

11.2.1. Checking and Converting the Character

The SFXAscii and SFXShiftJIS classes are for checkingand converting the character types.

Example 11.24. Check the character type

if (SFXAscii::IsAlpha('a')) {	// if character is alphabet
    
}

if (SFXAscii::IsDigit('5')) {	// if character is number
	
}

Example 11.25. Check the character type of Japanese (Shift_JIS)

SFXWideString wstr("あいうえおABCDE");
if (SFXShiftJIS::IsFullAlpha(wstr[6])) {	// if WChar character is 2-byte alphabet
	
}

if (SFXShiftJIS::IsFullHiragana(wstr[6])) {	// if WChar character is 2-byte Japanese Hiragana
	
}

Example 11.26. Convert the character

// convert character into lower case
AChar character1 = SFXAscii::AsLower('A');

// convert character into upper case
AChar character2 = SFXAscii::AsUpper('a');

Example 11.27. Convert the Japanese character

SFXWideString wstr("あいうえおかきくけこ");

// convert Hiragana character of WChar type into Katakana
SFXShiftJIS::HiraganaToKatakana(&wstr);

// convert 1-byte alphabet of WChar type into 2-byte
SFXShiftJIS::ToFullAlpha(&wstr);

11.2.2. Converting the String Code

SFXTextEncoding class is used for converting string codes.

Example 11.28. Convert Shift_JIS into UTF-8

SFXAnsiString srcString("あいうえお"); // string before conversion
SFXAnsiString destString; // string after conversion
SFCError error;           // error value

error = ShiftJISToUTF8(srcString, &destString);

Example 11.29. Convert UTF-8 to UTF-16BE

SFXAnsiString srcString("あいうえお"); // string before conversion
SFXWideString destString; // string after conversion
SFCError error;           // error value

error = UTF8ToUTF16BE(srcString, &destString);

Table 11.3. Character Encoding Conversion Table

Before: After UTF-8 UTF-16BE UTF-16LE UTF-32BE UTF-32LE Shift_JIS EUC-JP EUC-CN
UTF-8   O O O O O O O
UTF-16BE O   X O O O O O
UTF-16LE O X   O O O O O
UTF-32BE O O O   X O O O
UTF-32LE O O O X   O O O
Shift_JIS O O O O O   O X
EUC-JP O O O O O O   X
EUC-CN O O O O O X X