#include <utfconv.hpp>
Public 型 | |
| typedef CharTypeTraits< UTFCharT, ConvDir >::FromCharType | FromCharType |
| typedef CharTypeTraits< UTFCharT, ConvDir >::ToCharType | ToCharType |
Public メソッド | |
| UTFConv (const char *mbEncode) | |
| コンストラクタ. | |
| ~UTFConv () | |
| デストラクタ | |
| size_t | convert (const FromCharType *str, size_t len, std::vector< ToCharType > &buffer) |
| 変換した文字列を返す. | |
マルチバイト文字コードは、コンストラクタの引数でコード名で指定する。
文字コードとしては、iconv版は、iconv ライブラリで処理できるものであれば何でも可。 (SJIS, EUC-JP, EUC-KR, GB2312, UTF8 など)
Windows版は、SJIS, EUC-KR, GB2312 のみである。
UTF側は、UTF8 と UTF16LE のみである。
テンプレート引数:
UTFCharT はUTF系の文字型を指定するものであり、char または utf::WChar のいずれかを指定する。 char なら UTF8 になり、utf::WChar なら UTF16LE となる。
ConvDir は、変換方向を表現する to_utf_t または from_utf_t を指定する。 to_utf_t なら マルチバイト系からUTF系への変換となり、 from_utf_t なら、UTF系からマルチバイト系への変換となる。
typedef:
通常は、以下のようにすでに typedef された型を使うとよい。
MultiByteToUTF8 ……… マルチバイト文字列からUTF8文字列に変換する
MultiByteToUTF16 ……… マルチバイト文字列からUTF16(ワイド)文字列に変換する
MultiByteFromUTF8 …… UTF8文字列からマルチバイト文字列に変換する
MultiByteFromUTF16 …… UTF16(ワイド)文字列からマルチバイト文字列に変換する
UTF16 から GB2312 に変換する例:
string convert_from_utf16_to_gb( const WString& ws )
{
MultiByteFromUTF16 mbConv("GB2312");
vector<char> gbstr;
size_t reslen = mbConv.convert( ws.wc_str(), ws.length(), gbstr );
return string(&gbstr[0], reslen);
}
Shift_JIS から UTF16 に変換する例: string convert_sjis_to_utf16( const string::d& s )
{
MultiByteToUTF16 mbConv("Shift_JIS");
vector<wchar_t> wstr;
size_t reslen = mbConv.convert( s.c_str(), s.length(), wstr );
return wstring(&wcstr[0], reslen);
}
|
|||||
|
|
|
|||||
|
|
|
||||||||||
|
コンストラクタ.
|
|
|||||||||
|
デストラクタ
|
|
||||||||||||||||||||
|
変換した文字列を返す. 変換後の文字列は、クライアントから渡されたベクタに格納される。 ベクタには文字列終端のnull文字も格納されるので、先頭ポインタを得れば 通常のC文字列として扱うことができる。
|
1.4.2