GBK Unicode UTF 一点转换方法收集
2009-11-27 10:00
363 查看
1 GBK和Unicode相互转换
void ConvUni2Gbk(TDesC& original, TDes8& res)
{
TInt state = CCnvCharacterSetConverter::KStateDefault;
CCnvCharacterSetConverter* iConv;
iConv = CCnvCharacterSetConverter::NewLC();
if (iConv->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
CEikonEnv::Static()->FsSession())
!= CCnvCharacterSetConverter::EAvailable)
User::Leave(KErrNotSupported);
iConv->ConvertFromUnicode(res, original, state);
CleanupStack::PopAndDestroy();
}
void ConvGbk2Uni(TDesC8& original, TDes& res)
{
RFs aFileServerSession;
aFileServerSession.Connect();
CCnvCharacterSetConverter* converter = CCnvCharacterSetConverter::NewLC();
if (converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
aFileServerSession) != CCnvCharacterSetConverter::EAvailable)
User::Leave(KErrNotSupported);
TInt state = CCnvCharacterSetConverter::KStateDefault;
TPtrC8 str(original);
HBufC* iInfoText = HBufC::NewL(str.Length());
TPtr16 ptr = iInfoText->Des();
if (CCnvCharacterSetConverter::EErrorIllFormedInput
== converter->ConvertToUnicode(ptr, str, state))
User::Leave(KErrArgument);
res.Zero();
res.Copy(ptr);
aFileServerSession.Close();
CleanupStack::PopAndDestroy();
delete iInfoText;
}
2 UniCode和UTF8的转换用CnvUtfConverter类的方法即可
比如:视图之间传递数据用
IMPORT_C void CAknView::ActivateViewL ( const TVwsViewId & aViewId,
TUid aCustomMessageId,
const TDesC8 & aCustomMessage
)
要是aCustomMessage是中文的话,是16位的,需要转换成UTF8,传递过去,
在使用的时候再转换成Unicode。
void ConvUni2Gbk(TDesC& original, TDes8& res)
{
TInt state = CCnvCharacterSetConverter::KStateDefault;
CCnvCharacterSetConverter* iConv;
iConv = CCnvCharacterSetConverter::NewLC();
if (iConv->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
CEikonEnv::Static()->FsSession())
!= CCnvCharacterSetConverter::EAvailable)
User::Leave(KErrNotSupported);
iConv->ConvertFromUnicode(res, original, state);
CleanupStack::PopAndDestroy();
}
void ConvGbk2Uni(TDesC8& original, TDes& res)
{
RFs aFileServerSession;
aFileServerSession.Connect();
CCnvCharacterSetConverter* converter = CCnvCharacterSetConverter::NewLC();
if (converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
aFileServerSession) != CCnvCharacterSetConverter::EAvailable)
User::Leave(KErrNotSupported);
TInt state = CCnvCharacterSetConverter::KStateDefault;
TPtrC8 str(original);
HBufC* iInfoText = HBufC::NewL(str.Length());
TPtr16 ptr = iInfoText->Des();
if (CCnvCharacterSetConverter::EErrorIllFormedInput
== converter->ConvertToUnicode(ptr, str, state))
User::Leave(KErrArgument);
res.Zero();
res.Copy(ptr);
aFileServerSession.Close();
CleanupStack::PopAndDestroy();
delete iInfoText;
}
2 UniCode和UTF8的转换用CnvUtfConverter类的方法即可
比如:视图之间传递数据用
IMPORT_C void CAknView::ActivateViewL ( const TVwsViewId & aViewId,
TUid aCustomMessageId,
const TDesC8 & aCustomMessage
)
要是aCustomMessage是中文的话,是16位的,需要转换成UTF8,传递过去,
在使用的时候再转换成Unicode。
相关文章推荐
- 也谈UTF-8转换为Unicode方法
- 第二篇:JAVA字符编码系列二:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换
- 关于解决乱码问题的一点探索之二(涉及Unicode(utf-16)和GBK)
- C++文件编码由GBK转换UTF-8的解决方法
- JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
- 关于JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换
- Python编码UNICODE GBK UTF-8字符集转换的正确姿势
- GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换
- DedeCMS模板utf转换到gbk的方法
- JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
- 关于JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换
- JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
- 【JAVA编码】 JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
- JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
- C#_汉字与GBK,Unicode,UTF-8编码之间的转换
- 在J2ME实现UTF-8转换为Unicode编码的方法
- JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换[引]
- Robot Framework RIDE中的字符转换、中文、python的gbk解码 unicode('${org_name}',"utf-8")
- C#_汉字与GBK,Unicode,UTF-8编码之间的转换(by daode1212)
- 关于JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换