当前位置:编程学习 > wap >>

关于使用\Symbian\7.0s\Series60_v21_C 这个版本的中文转换的问题?

如题中文转换:
用到的头文件及 link 都加了
#include <charconv.h>
#include <e32des16.h> 
#include <f32file.h>
Link against: 
euser.lib 
estor.lib 
charconv.lib 
efsrv.lib 

void CSymWorkAppView::Draw(const TRect& aRect) const
{
    // Clear the screen
    CWindowGc& gc = SystemGc();
    gc.Clear(Rect());
    gc.SetBrushColor(KRgbWhite);
    gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
    gc.SetPenColor(KRgbBlack);
    const CFont* fontUsed;
    fontUsed = iEikonEnv->TitleFont();// she zhe font ;
    gc.UseFont(fontUsed);
    TText8  *str = (TText8*)"中文转换N7610";
    HBufC16* msg = ChangeToUnicode(str); //调用转码,str类型为TText8*
    TBuf<80> buf;
    buf.Copy( msg->Des() );
    delete msg;
    msg = NULL;

    gc.DrawText(buf,TPoint(10,50));

    gc.DrawRect( aRect );
}
HBufC16* CSymWorkAppView::ChangeToUnicode(TText8* aOrigin)
{
//创建一个转换器且转换器放入清除栈

CCnvCharacterSetConverter* converter=CCnvCharacterSetConverter::NewLC();
RFs fs;
//需要打开文件服务器

User::LeaveIfError(fs.Connect());
//判断传入的源字符串是否GBK\GB2123码
if(converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
fs)!=CCnvCharacterSetConverter::EAvailable)
{
//如果不是GBK\GBK2123码就退出

fs.Close();
CleanupStack::Pop(converter);
delete converter;
User::Leave(KErrNotSupported);
}
//TText8* str = aSource;
TText8* str = aOrigin;
TInt state=CCnvCharacterSetConverter::KStateDefault;

TPtrC8 source( aOrigin );
HBufC* iInfoText = HBufC::NewL( source.Length() ); 
TPtr16 ptr = iInfoText->Des();

if(CCnvCharacterSetConverter::EErrorIllFormedInput == converter->ConvertToUnicode(ptr, source, state))
User::Leave(KErrArgument); 
//转换完成并清除转换器 
 
CleanupStack::PopAndDestroy(); 
fs.Close();
//返回unicode编码的描述符,记得在调用这个函数显示中文后要删除此描述符
return iInfoText; 
}

以上是用到的代码大家给看看问题出在哪里??只要我调用这代码,程序就自动关闭了,说不支持此功能 .... --------------------编程问答-------------------- User::Leave(KErrNotSupported);
后面最好加上return; --------------------编程问答-------------------- 有可能模拟器不支持这个字符集转换,建议到真机上运行一下看看.
补充:移动开发 ,  Symbian
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,