WEB开发网
开发学院手机开发Symbian 开发 S60平台简体汉字处理浅谈 阅读

S60平台简体汉字处理浅谈

 2010-07-21 04:21:00 来源:WEB开发网   
核心提示:1.自己写自己读借助Symbian的文件服务将字串写入文件,一般都是带格式的,文件的首字符用来表示紧跟字串的长度和编码,S60平台简体汉字处理浅谈(3),所以不是什么文件都可以读的,例如用记事本编辑的文件一般就无法正确读出,除非写对了格式,例如://写文件 _LIT( KFileName, "privatex

1.自己写自己读

借助Symbian的文件服务将字串写入文件,一般都是带格式的,文件的首字符用来表示紧跟字串的长度和编码,所以不是什么文件都可以读的,例如用记事本编辑的文件一般就无法正确读出,除非写对了格式,而这种格式手工写是很烦琐的。所以对于程序内部文件读写,最好是:拿什么写就用什么读,要拿什么读就用什么写。

2.UTF-8编码简体汉字串读写文件

无论是从资源文件中读取的,还是.cpp中定义的UTF-8编码字串,都可以直接写直接读,无需编码转换。例如:

//写文件 _LIT( KFileName, "privatexxxxxxxxaTextFile.txt" ); RFs FileServerSession; User::LeaveIfError(FileServerSession.Connect()); RFile file; if ( file.Replace(FileServerSession, KFileName, EFileWrite ) != KErrNone ) { return; } CleanupClosePushL( file ); _LIT( KUTF8String, "简体汉字串");//或者HBufC* UTF8ResourceString = StringLoader::LoadLC( R_UTF8_RESOURCE_STRING ); RFileWriteStream StreamWriteToFile( file ); CleanupClosePushL( StreamWriteToFile ); StreamWriteToFile << KUTF8String;//或者StreamWriteToFile << *UTF8ResourceString CleanupStack::PopAndDestroy(2); //file StreamWriteToFile //读文件 RFs FileServerSession; RFile file; User::LeaveIfError(FileServerSession.Connect()); CleanupClosePushL(FileServerSession); User::LeaveIfError(file.Open(FileServerSession,KHelloFileName, EFileStreamText)); CleanupClosePushL(file); RFileReadStream StreamReadFromFile(file); CleanupClosePushL(StreamReadFromFile); HBufC* StreamData= HBufC::NewLC(StreamReadFromFile, 32); CleanupStack::PopAndDestroy(3); //file StreamReadFromFile StreamData FileServerSession.Close();

得到的StreamData可以通过:

CAknInformationNote* InfoNote; InfoNote = new ( ELeave ) CAknInformationNote; InfoNote->ExecuteLD( *StreamData )

加以显示验证。

3.非UTF-8编码简体汉字串读写文件:

如前所述,非UTF8编码简体汉字串必须进行编码转换,主要有两种方法:

1).将字串转换为Unicode编码写入文件后直接读取:

//转换后写文件

上一页  1 2 3 4 5 6  下一页

Tags:平台 汉字

编辑录入:coldstar [复制链接] [打 印]
赞助商链接