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 + -
显示快捷键?