クラス テンプレート langedge::UTFConv< UTFCharT, ConvDir >

マルチバイト系文字列とUTF系文字列を変換するクラス. [詳細]

#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)
 変換した文字列を返す.


説明

template<class UTFCharT, class ConvDir>
class langedge::UTFConv< UTFCharT, ConvDir >

マルチバイト系文字列とUTF系文字列を変換するクラス.

マルチバイト文字コードは、コンストラクタの引数でコード名で指定する。
文字コードとしては、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); 
 } 
 


型定義

template<class UTFCharT, class ConvDir>
typedef CharTypeTraits<UTFCharT,ConvDir>::FromCharType langedge::UTFConv< UTFCharT, ConvDir >::FromCharType
 

template<class UTFCharT, class ConvDir>
typedef CharTypeTraits<UTFCharT,ConvDir>::ToCharType langedge::UTFConv< UTFCharT, ConvDir >::ToCharType
 


コンストラクタとデストラクタ

template<class UTFCharT, class ConvDir>
langedge::UTFConv< UTFCharT, ConvDir >::UTFConv const char *  mbEncode  )  [inline]
 

コンストラクタ.

引数:
mbEncode マルチバイト系文字コードを指定する
("SJIS", 'EUC-JP", "EUC-KR", "GB2312", "UTF8" など)

template<class UTFCharT, class ConvDir>
langedge::UTFConv< UTFCharT, ConvDir >::~UTFConv  )  [inline]
 

デストラクタ


関数

template<class UTFCharT, class ConvDir>
size_t langedge::UTFConv< UTFCharT, ConvDir >::convert const FromCharType str,
size_t  len,
std::vector< ToCharType > &  buffer
[inline]
 

変換した文字列を返す.

変換後の文字列は、クライアントから渡されたベクタに格納される。 ベクタには文字列終端のnull文字も格納されるので、先頭ポインタを得れば 通常のC文字列として扱うことができる。

引数:
str ソース文字列
len ソース文字列長 (FromCharTypeなデータ数; 0 なら文字列は nul終端)
buffer 変換した文字列を返す (終端null文字が付加される)
戻り値:
変換後の文字列の文字数(UTF16)あるいはバイト数(マルチバイト系) (終端null文字を含まない)


このクラスの説明は次のファイルから生成されました:
LangEdge ライブラリに対してFri May 6 22:43:04 2005に生成されました。  doxygen 1.4.2