UNICODE程序写文件出现乱码
来源:互联网 发布:mysql date add的用法 编辑:程序博客网 时间:2024/05/17 03:31
在程序中使用的是UNICODE编码,写入文件时如果存在中文就会出现乱码,原因是写入文件内容变成了ANSI编码,解决的办法是将需要写入文件的内容首先转换成宽字符然后再转换UTF-8编码。代码如下:
std::string WideToUTF8(const std::wstring& _src)
{
int nBufSize = WideCharToMultiByte(CP_UTF8, 0, _src.c_str(),-1, NULL, 0, 0, FALSE);
char *szBuf = new char[nBufSize];
WideCharToMultiByte(CP_UTF8, 0, _src.c_str(),-1, szBuf, nBufSize, 0, FALSE);
std::string strRet(szBuf);
delete []szBuf;
szBuf = NULL;
return strRet;
}// 写出宽字符串时这样用,内容在text中
if(fopen_s( &pFile, "log.txt","a")!=0)
{
std::string str = WideToUTF8( text );
fputs(str.c_str(), pFile);
fputc('\n',pFile);
fclose(pFile);
}
- UNICODE程序写文件出现乱码
- 写文件开头出现乱码
- 写Unicode格式的文本文件时出现乱码的问题
- VC中使用CFile正确的追加写中文数据到文件不出现乱码-unicode字符集
- 写文件为什么出现中文乱码
- 如何在写文件时转换unicode汉字避免乱码
- MFC UNICODE项目CFILE写html文件乱码解决
- 使用CStdioFile 读取Unicode文件时出现乱码问题解决方案
- UNICODE 字符写文本 乱码
- 笔记-写Unicode文件
- 写文件UNICODE相关
- javaweb写程序时怎么保证不出现乱码问题
- java io写文件 在linux出现中文乱码
- java io写文件 在linux出现中文乱码
- java io写文件 在linux出现中文乱码
- 用CAtlFile类写日志文件时出现乱码
- Unicode 文件内容读取乱码
- ECC 5.0,un-unicode系统,接收从外围unicode系统传过来的XML文件中出现乱码的解决方法
- 如何去除桌面快捷方式阴影
- 自定义View如何响应点击事件从而刷新view
- 学会感恩
- [推理力] 四人过桥问题
- j2me 平台搭建
- UNICODE程序写文件出现乱码
- Linux下jdk的安装
- Linux下 Oracle 10g安装文档
- 解决您的U8800手机信号差,WIFI掉线,无法发送彩信等问题
- html学习——样式
- Hibernate
- 以简单的方式消除 Java 的冗长 (Lombok的安装使用)
- 25款Windows8系统最新高清桌面壁纸
- git 常用操作