UTF-8 文件读写
来源:互联网 发布:windows.old还原win10 编辑:程序博客网 时间:2024/06/08 19:35
///////////////////////////////////////////////////////////
CString UTF8ToUnicode(byte *szUTF8)
{
CString strret;
strret=_T("");
if(!szUTF8)
return strret;
//获取转换后所需串空间的长度
int wcsLen = MultiByteToWideChar(CP_UTF8,0,(LPSTR)szUTF8,strlen((char*)szUTF8),NULL,0);
LPWSTR lpw=new WCHAR[wcsLen+1];
if(!lpw)
return strret;
memset(lpw,0,(wcsLen+1)*sizeof(wchar_t));
//实施转换
MultiByteToWideChar(CP_UTF8,0, (LPSTR)szUTF8,
strlen((char *)szUTF8), (LPWSTR)lpw, wcsLen);
CString str(lpw);
delete[] lpw;
return str;
}
///////////////////////////////////////////////////////////
///读取 utf-8 文本文件
CFile file;
file.Open(strPathSrc,CFile::modeRead);
file.Seek(3,0);
int iFileLong=(int)file.GetLength();
// DisplayMsg(_T("%d file long"),iFileLong);
byte *bChar=new byte[iFileLong-1];//记录1位
file.Read(bChar,iFileLong-1);
bChar[iFileLong-3]=0xd;//最后加入一个换行
bChar[iFileLong-2]=0xa;
CString strResult=UTF8ToUnicode(bChar);
// AfxMessageBox(strResult);
vector<CString> strLineVec;
CString strLine;
for (int i=0; i<strResult.GetLength(); i++)
{
if (strResult.GetAt(i)=='\n')
{
strLine.Trim();
strLineVec.push_back(strLine);
strLine.Empty();
}
{
strLine+=strResult.Mid(i,1);
}
}
// for (int i=0; i<(int)strLineVec.size(); i++)
// {
// AfxMessageBox(strLineVec.at(i));
// }
delete []bChar;
file.Close();
CString UTF8ToUnicode(byte *szUTF8)
{
CString strret;
strret=_T("");
if(!szUTF8)
return strret;
//获取转换后所需串空间的长度
int wcsLen = MultiByteToWideChar(CP_UTF8,0,(LPSTR)szUTF8,strlen((char*)szUTF8),NULL,0);
LPWSTR lpw=new WCHAR[wcsLen+1];
if(!lpw)
return strret;
memset(lpw,0,(wcsLen+1)*sizeof(wchar_t));
//实施转换
MultiByteToWideChar(CP_UTF8,0, (LPSTR)szUTF8,
strlen((char *)szUTF8), (LPWSTR)lpw, wcsLen);
CString str(lpw);
delete[] lpw;
return str;
}
///////////////////////////////////////////////////////////
///读取 utf-8 文本文件
CFile file;
file.Open(strPathSrc,CFile::modeRead);
file.Seek(3,0);
int iFileLong=(int)file.GetLength();
// DisplayMsg(_T("%d file long"),iFileLong);
byte *bChar=new byte[iFileLong-1];//记录1位
file.Read(bChar,iFileLong-1);
bChar[iFileLong-3]=0xd;//最后加入一个换行
bChar[iFileLong-2]=0xa;
CString strResult=UTF8ToUnicode(bChar);
// AfxMessageBox(strResult);
vector<CString> strLineVec;
CString strLine;
for (int i=0; i<strResult.GetLength(); i++)
{
if (strResult.GetAt(i)=='\n')
{
strLine.Trim();
strLineVec.push_back(strLine);
strLine.Empty();
}
{
strLine+=strResult.Mid(i,1);
}
}
// for (int i=0; i<(int)strLineVec.size(); i++)
// {
// AfxMessageBox(strLineVec.at(i));
// }
delete []bChar;
file.Close();
- 读写utf-8文件
- UTF-8 文件读写
- VC6 UTF-8文件读写
- C++ 读写utf-8文件
- utf-8文件的读写
- java utf-8 文件的读写
- vba 读写文件,utf-8编码格式
- Java以UTF-8编码读写文件
- Java以UTF-8编码读写文件
- Java文件读写—utf-8格式
- Java以UTF-8编码读写文件
- Java以UTF-8编码读写文件
- 在Java中读写UTF-8编码文件
- 用ASP读写UTF-8编码的文件
- 在Java中读写UTF-8编码文件
- Java指定编码读写文件(UTF-8)
- asp在utf-8编码时读写文件
- 解決BufferedReader BufferedWrite 读写UTF-8文件中文乱码
- MySQL 百万级分页优化
- centos上redmine2.3.0点击我的帐户和个人设置出现500错误的解决方案
- Oracle命令--修改oracle回话数
- SEO的艺术(原书第2版)
- Oracle命令--修改oracle密码
- UTF-8 文件读写
- 第九次上机报告
- DB2中SQLSTATE=57016 SQLCODE=-668,原因码 "7"的解决
- 基础python学习视频连接
- 从程序员到CTO的Java技术路线图
- 第九次实验任务
- 进程的创建与可执行程序的加载
- jQuery plugin Validation的7个Callback介绍
- Hibernate的实体类中为什么要继承Serializable?