C 日本語文字列 新しいページはコチラ
提供: yonewiki
(→マルチバイト文字列、ワイド文字列) |
(→マルチバイト文字列、ワイド文字列) |
||
94行: | 94行: | ||
int main() { | int main() { | ||
_tsetlocale( LC_ALL, _T("Japanese")); | _tsetlocale( LC_ALL, _T("Japanese")); | ||
− | TCHAR cStr0[]=_T(" | + | TCHAR cStr0[]=_T("表示:よねウィキの機能<yonewiki>"); |
_tprintf(_T("cStr0=%s sizeof=%d StrCount=%d"), cStr0,sizeof(cStr0),_tcslen(cStr0)); | _tprintf(_T("cStr0=%s sizeof=%d StrCount=%d"), cStr0,sizeof(cStr0),_tcslen(cStr0)); | ||
} | } | ||
100行: | 100行: | ||
出力結果は | 出力結果は | ||
<syntaxhighlight lang="cpp" line start="1"> | <syntaxhighlight lang="cpp" line start="1"> | ||
− | cStr0= | + | cStr0=表示:よねウィキの機能<yonewiki> sizeof=44 StrCount=21 |
</syntaxhighlight> | </syntaxhighlight> | ||
となります。 | となります。 | ||
+ | TCHAR型のユニコード(UTF-16)設定にした場合、wchar_t型のcStr0は配列番号0~21の22の大きさを持つ配列になります。<br /> | ||
+ | Unicode文字セットですのでShft_JISとは異なる数値が使われますが、0番から順に<br /> | ||
+ | 0x8868(表),0x793A(示),0xFF1A(:),0x3088(よ),0x306D(ね),0x30A6(ウ),0x30A3(ィ),0x30AD(キ),0x306E(の),0x6A5F(機),0x80FD(能)<br /> | ||
+ | 0x003C(<nowiki><</nowiki>),0x0079(y),0x006F(o),0x006E(n),0x0065(e),0x0077(w),0x0069(i),0x006B(k),0x0069(i),0x003E(<nowiki>></nowiki>),0x0000(\0)<br /> | ||
+ | のように格納されています。 | ||
あんまり変わり映えしませんが、プロジェクトの設定に従うという意味ではTCHAR型を使うのが少しお勧めです。<br /> | あんまり変わり映えしませんが、プロジェクトの設定に従うという意味ではTCHAR型を使うのが少しお勧めです。<br /> | ||
+ | 気を付けなければならないのは、Shift_JIS(CP932)コード文字セットで格納された配列をユニコード文字セットのプロジェクトで受け取ったり、<br /> | ||
+ | その逆のことが起こったりする場合には変換が必要になったりと、いいことばかりではありません。<br /> | ||
+ | この他、文字コードにはShift_JIS(CP932)ではないShift_JISやEUCやMac日本語といった文字コードもあり、可能性だけで考えると<br /> | ||
+ | Unicode:UTF-8/UTF-16/UTF-32<br /> | ||
+ | Shift_JIS:CP932/shift_jis/shift_jis2000/shift_jis2004<br /> | ||
+ | Mac:x-mac-japanese<br /> | ||
+ | EUC:CP51932/CP20932/euc-jp2000/euc-jp2004/eucJP-ms<br /> | ||
+ | JIS:CP50220/ISO-2022-JP/ISO-2022-JP-1/ISO-2022-JP-2004/ISO-2022-JP-3<br /> | ||
+ | JIS 1Byte:ISO-2022-JP/CP50221<br /> | ||
+ | といった文字コードが存在し、外国語文字コードセットも含めるとかなりの数の文字コードが世界に広がっています。<br /> | ||
+ | Unicodeも扱いがいくつかあるため、実はもう少し勉強しないといけないです。<br /> | ||
+ | <br /> | ||
<br /> | <br /> | ||
WindowsのVisualStudioなどでWin32 APIを使える環境であれば、以下のような型もあります。<br /> | WindowsのVisualStudioなどでWin32 APIを使える環境であれば、以下のような型もあります。<br /> |