mirror of
https://github.com/yanyiwu/cppjieba.git
synced 2025-07-18 00:00:12 +08:00
add utf8 into TransCode.cpp && run ok
This commit is contained in:
parent
21aba96168
commit
fda9e910ed
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user