add utf8 into TransCode.cpp && run ok

This commit is contained in:
gwdwyy 2013-08-20 01:52:42 +08:00
parent 21aba96168
commit fda9e910ed
2 changed files with 15 additions and 24 deletions

View File

@ -2,7 +2,6 @@
namespace CppJieba namespace CppJieba
{ {
string TransCode::_enc;
vector<string> TransCode::_encVec; vector<string> TransCode::_encVec;
bool TransCode::_isInitted = TransCode::init(); bool TransCode::_isInitted = TransCode::init();
TransCode::pf_strToVec_t TransCode::_pf_strToVec = NULL; TransCode::pf_strToVec_t TransCode::_pf_strToVec = NULL;
@ -10,9 +9,6 @@ namespace CppJieba
bool TransCode::init() bool TransCode::init()
{ {
_encVec.push_back("utf-8");
_encVec.push_back("gbk");
_enc = _encVec[1];
_pf_strToVec = gbkToVec; _pf_strToVec = gbkToVec;
_pf_vecToStr = vecToGbk; _pf_vecToStr = vecToGbk;
return true; return true;
@ -26,22 +22,16 @@ namespace CppJieba
{ {
} }
bool TransCode::setEnc(const string& enc) void TransCode::setGbkEnc()
{ {
if(_encVec.empty()) _pf_strToVec = gbkToVec;
{ _pf_vecToStr = vecToGbk;
return false;
} }
if(isInVec<string>(_encVec, enc)) void TransCode::setUtf8Enc()
{ {
_enc = enc; _pf_strToVec = utf8ToVec;
} _pf_vecToStr = vecToUtf8;
else
{
return false;
}
return true;
} }
bool TransCode::strToVec(const string& str, vector<uint16_t>& vec) bool TransCode::strToVec(const string& str, vector<uint16_t>& vec)
@ -234,10 +224,11 @@ int main()
string a(""); string a("");
vector<uint16_t> vec; vector<uint16_t> vec;
cout<<TransCode::utf8ToVec(a, vec)<<endl; //TransCode::setUtf8Enc();
cout<<TransCode::strToVec(a, vec)<<endl;
PRINT_VECTOR(vec); PRINT_VECTOR(vec);
cout<<TransCode::vecToUtf8(vec.begin(), vec.end())<<endl; cout<<TransCode::vecToStr(vec.begin(), vec.end())<<endl;
return 0; return 0;
} }

View File

@ -1,5 +1,5 @@
/************************************ /************************************
* file enc : ASCII * file enc : utf-8
* author : wuyanyi09@gmail.com * author : wuyanyi09@gmail.com
************************************/ ************************************/
#ifndef CPPJIEBA_TRANSCODE_H #ifndef CPPJIEBA_TRANSCODE_H
@ -20,7 +20,6 @@ namespace CppJieba
typedef string (*pf_vecToStr_t)(VUINT16_CONST_ITER begin, VUINT16_CONST_ITER end); typedef string (*pf_vecToStr_t)(VUINT16_CONST_ITER begin, VUINT16_CONST_ITER end);
typedef size_t (*pf_getWordLength_t)(const string& str); typedef size_t (*pf_getWordLength_t)(const string& str);
private: private:
static string _enc;
static vector<string> _encVec; static vector<string> _encVec;
static bool _isInitted; static bool _isInitted;
static pf_strToVec_t _pf_strToVec; static pf_strToVec_t _pf_strToVec;
@ -28,7 +27,8 @@ namespace CppJieba
static pf_getWordLength_t _pf_getWordLength; static pf_getWordLength_t _pf_getWordLength;
public: public:
static bool setEnc(const string& enc); static void setGbkEnc();
static void setUtf8Enc();
public: public:
TransCode(); TransCode();