读取本地UTF-8文件带有换行的中文文本
2009-02-19 01:07
405 查看
代码片段://////////////////////////////////////////////////////////////////////////////
void LoadingMenus(const TDesC& aFilePath)
{
RFs fs;
RFile file;
User::LeaveIfError(fs.Connect());
TInt err=file.Open(fs,aFilePath,EFileRead);
// if(err=KErrNone)
{
TInt nsize;
file.Size(nsize);
HBufC8* hBuf8=HBufC8::NewLC(nsize-3);
TPtr8 ptr=hBuf8->Des();
file.Read(3,ptr,nsize-3);//去掉windows系统在UTF-8编码中加入的3个EF BB BF 字节
_LIT8(KNewLine,"/r/n"); //回车换行
TBuf<20> buf16;
TInt pos1=0;
TInt pos2=0;
TBuf8<420> ibuf8;
ibuf8.Copy(ptr);
TBool isOut=EFalse;
while(pos1<ptr.Length())
{
pos2=ibuf8.Find(KNewLine);
if(pos2==KErrNotFound)
{
ibuf8=ibuf8.Mid(0,ptr.Length()-pos1);
isOut=ETrue;
}
else
ibuf8=ibuf8.Mid(0,pos2);
CnvUtfConverter::ConvertToUnicodeFromUtf8(buf16,ibuf8);
menus.Append(buf16);
pos1+=(pos2+2);
ibuf8=ptr.Mid(pos1);
if(isOut)
break;
}
CleanupStack::PopAndDestroy(hBuf8);
}
file.Close();
fs.Close();
}
void LoadingMenus(const TDesC& aFilePath)
{
RFs fs;
RFile file;
User::LeaveIfError(fs.Connect());
TInt err=file.Open(fs,aFilePath,EFileRead);
// if(err=KErrNone)
{
TInt nsize;
file.Size(nsize);
HBufC8* hBuf8=HBufC8::NewLC(nsize-3);
TPtr8 ptr=hBuf8->Des();
file.Read(3,ptr,nsize-3);//去掉windows系统在UTF-8编码中加入的3个EF BB BF 字节
_LIT8(KNewLine,"/r/n"); //回车换行
TBuf<20> buf16;
TInt pos1=0;
TInt pos2=0;
TBuf8<420> ibuf8;
ibuf8.Copy(ptr);
TBool isOut=EFalse;
while(pos1<ptr.Length())
{
pos2=ibuf8.Find(KNewLine);
if(pos2==KErrNotFound)
{
ibuf8=ibuf8.Mid(0,ptr.Length()-pos1);
isOut=ETrue;
}
else
ibuf8=ibuf8.Mid(0,pos2);
CnvUtfConverter::ConvertToUnicodeFromUtf8(buf16,ibuf8);
menus.Append(buf16);
pos1+=(pos2+2);
ibuf8=ptr.Mid(pos1);
if(isOut)
break;
}
CleanupStack::PopAndDestroy(hBuf8);
}
file.Close();
fs.Close();
}
相关文章推荐
- Symbian 中读取UTF-8编码本地文件,换行处理
- 解決BufferedReader读取UTF-8文件中文乱码
- nodejs读取本地中文json文件出现乱码
- MFC/C++ CFile写入文件数据,输出utf-8的文本。(防止中文乱码)
- Java 解決BufferedReader读取UTF-8文件中文乱码
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Qt读取中文文本,兼容GBK&&UTF-8
- Unity3D研究院之IOS Android支持中文与本地文件的读取写入(二十七)
- [Python] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题
- 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- [置顶] ThinkPHP读取本地文件信息(包括中文路径)
- BufferedReader读取UTF-8文件中文乱码
- IOS Android支持中文与本地文件的读取写入
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Java 解決BufferedReader读取UTF-8文件中文乱码
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Java读取UTF-8格式文件第一行出现乱码——问号“?”及解决 And Java读带有BOM的UTF-8文件乱码原因及解决方法
- Flash Player8 ActiveX 读取本地中文文件夹文件错误问题