tounicode.cpp
来自「一个很不错的Symbian程序源代码,里面有图片和一些对话框」· C++ 代码 · 共 96 行
CPP
96 行
#include <charconv.h> //LIB:charconv.lib
#include <f32file.h> //Link against: efsrv.lib
#include <e32std.h>
#include <coemain.h> //Link against: cone.lib
#include <EIKDEF.H>
#include <EIKENV.H>
#include <eiklabel.h> // for example label control
#include<BARSREAD.H>
#include<NewApp11.rsg>
#include<ToUnicode.h>
#include<COEINPUT.H>
#include <aknedsts.h>
#include<gdi.h>
#include <avkon.hrh>
#include<eikseced.h>
#include <COEFONT.H>
#include <EIKDEF.H>
#include <aknglobalnote.h>
#include "Sockets.pan"
#include <eikgted.h>
#include "ToUnicode.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
ToUnicode::ToUnicode()
{
}
ToUnicode::~ToUnicode()
{
}
TInt ToUnicode::ConvertAA()
{
return 0;
}
HBufC16* ToUnicode::ConvertL(TText8* aOrigin)
{
CCnvCharacterSetConverter* converter=CCnvCharacterSetConverter::NewLC();
RFs fSession;
User::LeaveIfError(fSession.Connect());
//GB2123?
if(converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
fSession)!=CCnvCharacterSetConverter::EAvailable)
{
//GBK\GBK2123
fSession.Close();
CleanupStack::Pop(converter);
delete converter;
User::Leave(KErrNotSupported);
}
TText8* str = aOrigin;
TInt state=CCnvCharacterSetConverter::KStateDefault;
TPtrC8 source( str );
HBufC* iInfoText = HBufC::NewL( source.Length() );
TPtr16 ptr = iInfoText->Des();
if(CCnvCharacterSetConverter::EErrorIllFormedInput == converter->ConvertToUnicode(ptr, source, state))
User::Leave(KErrArgument);
CleanupStack::PopAndDestroy();
fSession.Close();
return iInfoText;
}
void ToUnicode::ConvUni2Gbk(TDesC& original, TDes8& res) {
TInt state=CCnvCharacterSetConverter::KStateDefault;
CCnvCharacterSetConverter* iConv ;
iConv = CCnvCharacterSetConverter::NewLC();
RFs fSession;
User::LeaveIfError(fSession.Connect());
if(iConv->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
fSession)!=CCnvCharacterSetConverter::EAvailable)
User::Leave(KErrNotSupported);
iConv->ConvertFromUnicode(res, original, state) ;
CleanupStack::PopAndDestroy() ;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?