![]() ![]() ![]()
|
SophiaFramework 2.2 |
#include <SFUShiftJIS.hpp>
class SFUShiftJIS;
typedef SFUShiftJIS& SFUShiftJISRef; typedef SFUShiftJIS* SFUShiftJISPtr; typedef SFUShiftJIS** SFUShiftJISHandle; typedef const SFUShiftJIS ConstSFUShiftJIS; typedef const SFUShiftJIS& ConstSFUShiftJISRef; typedef const SFUShiftJIS* ConstSFUShiftJISPtr; typedef const SFUShiftJIS** ConstSFUShiftJISHandle;
Shift_JIS エンコード文字列特有の処理を行うクラスです。 このクラスは静的関数のみをもちます。 カタカナとひらがなの変換や、 全角文字と半角文字の変換などを行うことができます。
引数としてはワイド文字やワイド文字列 (SFUWideString) しか受け取りません。ANSI 文字に対して処理を行う必要がある場合は、 いったんワイド文字に変換した上で、このクラスの関数を使用してください。
| パブリック関数 | ||
|---|---|---|
| public static |
AlphaToFull | 半角の英字を全角に変換します。 |
| public static |
AlphaToHalf | 全角の英字を半角に変換します。 |
| public static |
DigitToFull | 半角の数字を全角に変換します。 |
| public static |
DigitToHalf | 全角の数字を半角に変換します。 |
| public static |
HiraganaToKatakana | ひらがなを全角カタカナに変換します。 |
| public static |
IsFullAlpha | 文字が全角英字であるか判定します。 |
| public static |
IsFullDigit | 文字が全角数字であるか判定します。 |
| public static |
IsFullKatakana | 文字が全角カタカナであるか判定します。 |
| public static |
IsHalfAlpha | 文字が半角英字であるか判定します。 |
| public static |
IsHalfDigit | 文字が半角数字であるか判定します。 |
| public static |
IsHalfKatakana | 文字が半角カタカナであるか判定します。 |
| public static |
IsHalfSymbol | 文字が半角記号であるか判定します。 |
| public static |
IsHiragana | 文字がひらがなであるか判定します。 |
| public static |
KatakanaToFull | 半角カタカナを全角に変換します。 |
| public static |
KatakanaToHalf | 全角カタカナを半角に変換します。 |
| public static |
KatakanaToHiragana | 全角カタカナをひらがなに変換します。 |
| public static |
SymbolToFull | 半角記号を全角記号に変換します。 |
| public static |
SymbolToHalf | 全角記号を半角記号に変換します。 |
| public static |
UInt16ToWChar | 比較可能な数値をワイド文字に変換します。 |
| public static |
WCharToUInt16 | ワイド文字を比較可能な数値に変換します。 |
[ public, static ] Void AlphaToFull( SFUWideStringPtr pstr );
次の例では、半角の ABC を全角の ABC に変換しています。
SFUWideString str = "ABC"; SFUShiftJIS::AlphaToFull(&str);
[ public, static ] Void AlphaToHalf( SFUWideStringPtr pstr );
次の例では、全角の XYZ を半角の XYZ に変換しています。
SFUWideString str = "XYZ座標"; SFUShiftJIS::AlphaToHalf(&str);
[ public, static ] Void DigitToFull( SFUWideStringPtr pstr );
次の例では、半角の 2003 を全角の 2003 に変換しています。
SFUWideString str = "2003年に入社しました。"; SFUShiftJIS::DigitToFull(&str);
[ public, static ] Void DigitToHalf( SFUWideStringPtr pstr );
次の例では、全角の 99 を半角の 99 に変換しています。
SFUWideString str = "侵入地点はエリア99です。"; SFUShiftJIS::DigitToHalf(&str);
[ public, static ] Void HiraganaToKatakana( SFUWideStringPtr pstr );
この関数は、文字列中のひらがなを全角カタカナに変換します。
次の例では、「むらさき しきぶ」を「ムラサキ シキブ」に変換しています。
SFUWideString str = "むらさき しきぶ"; SFUShiftJIS::HiraganaToKatakana(&str);
この関数は、文字が全角カタカナであるか判定します。 具体的には、文字コードが 0x8340 以上 0x8396 以下であり、 かつ、0x837F でない場合にのみ、TRUE を返します。
この関数は、文字が半角カタカナであるか判定します。 この判定には、半角の句読点、カギ括弧などの記号類も含まれます。 具体的には、 文字コード 0xA1 から 0xDF に対してのみ TRUE を返します。
この関数は、文字が半角記号であるか判定します。 具体的には、SFUShiftJIS::SymbolToFull で示されている半角記号のいずれかに一致するときのみ TRUE を返します。
この関数は、文字がひらがなであるか判定します。 具体的には、文字コードが 0x829F 以上 0x82F1 以下の場合にのみ TRUE を返します。
[ public, static ] Void KatakanaToFull( SFUWideStringPtr pstr );
この関数は、文字列中の半角カタカナを全角カタカナに変換します。 半角カタカナで濁音や半濁音をつけた文字は、 全角カタカナの1文字に変換されます。 また、半角カタカナの以下の記号類も全角に変換されます。
| 半角記号 | 半角文字コード | 全角記号 | 全角文字コード |
|---|---|---|---|
| ー | 0xB0 | ー | 0x815B |
| ゙ | 0xDE | ゛ | 0x814A |
| ゚ | 0xDF | ゜ | 0x814B |
| 。 | 0xA1 | 。 | 0x8142 |
| 「 | 0xA2 | 「 | 0x8175 |
| 」 | 0xA3 | 」 | 0x8176 |
| 、 | 0xA4 | 、 | 0x8141 |
| ・ | 0xA5 | ・ | 0x8145 |
[ public, static ] Void KatakanaToHalf( SFUWideStringPtr pstr );
この関数は、文字列中の全角カタカナを半角カタカナに変換します。 濁点、半濁点をもつカタカナ1文字は、 濁点記号や半濁点記号を伴った2文字に変換されます。
下記の全角カタカナは変換されません。
| 全角カタカナ | 文字コード |
|---|---|
| ?? | 0x837F |
| ヮ | 0x838E |
| ヰ | 0x8390 |
| ヱ | 0x8391 |
| ヵ | 0x8395 |
| ヶ | 0x8396 |
また、SFUShiftJIS::KatakanaToFull で一覧されている記号類も半角カタカナに変換されます。
[ public, static ] Void KatakanaToHiragana( SFUWideStringPtr pstr );
この関数は、文字列中の全角カタカナをひらがなに変換します。 カタカナの「ヴ」は、ひらがなの「ぶ」に変換されます。
次の例では、「ヤマダ タロウ」を「やまだ たろう」に変換しています。
SFUWideString str = "ヤマダ タロウ"; SFUShiftJIS::KatakanaToHiragana(&str);
[ public, static ] Void SymbolToFull( SFUWideStringPtr pstr );
この関数は、文字列中の半角記号を全角記号に変換します。 変換対象となる記号は以下のとおりです。
| 半角記号 | 半角文字コード | 全角記号 | 全角文字コード |
|---|---|---|---|
| ! | 0x21 | ! | 0x8149 |
| " | 0x22 | ” | 0x8168 |
| # | 0x23 | # | 0x8194 |
| $ | 0x24 | $ | 0x8190 |
| % | 0x25 | % | 0x8193 |
| & | 0x26 | & | 0x8195 |
| ' | 0x27 | ’ | 0x8166 |
| ( | 0x28 | ( | 0x8169 |
| ) | 0x29 | ) | 0x816A |
| * | 0x2A | * | 0x8196 |
| + | 0x2B | + | 0x817B |
| , | 0x2C | , | 0x8143 |
| - | 0x2D | 0x817C | |
| . | 0x2E | . | 0x8144 |
| / | 0x2F | / | 0x815E |
| : | 0x3A | : | 0x8146 |
| ; | 0x3B | ; | 0x8147 |
| < | 0x3C | < | 0x8183 |
| = | 0x3D | = | 0x8181 |
| > | 0x3E | > | 0x8184 |
| ? | 0x3F | ? | 0x8148 |
| @ | 0x40 | @ | 0x8197 |
| [ | 0x5B | [ | 0x816D |
| \ | 0x5C | ¥ | 0x818F |
| ] | 0x5D | ] | 0x816E |
| ^ | 0x5E | ^ | 0x814F |
| _ | 0x5F | _ | 0x8151 |
| ` | 0x60 | ‘ | 0x8165 |
| { | 0x7B | { | 0x816F |
| | | 0x7C | | | 0x8162 |
| } | 0x7D | } | 0x8170 |
| ~ | 0x7E | 0x8160 |
[ public, static ] Void SymbolToHalf( SFUWideStringPtr pstr );
この関数は、文字列中の全角記号を半角記号に変換します。 変換対象となる記号は、 SFUShiftJIS::SymbolToFull の一覧表に記載されている記号です。
この関数は SFUShiftJIS::WCharToUInt16 の逆変換を行います。
BREW API を使用して Shift_JIS 文字をワイド文字に変換した場合、 WChar の値は、文字種によってエンディアンが逆になり、 連続した文字コードに対する数値比較ができません。 この関数は、エンディアンが逆になる文字種に対して、 エンディアンをスワップすることで、 すべての WChar 文字を比較可能な数値に変換します。
具体的には、0xFF 以下の WChar 文字に対しては、その値をそのまま返し、 それ以外の WChar 文字に対しては、エンディアンを逆にして返します。
| Copyright(C) 2003-2004 Sophia Cradle Inc., All Rights Reserved. |
![]() ![]() ![]()
|