您的位置:首页 > 其它

WriteFile写中文字符串 TxT显示乱码

2012-04-26 13:56 274 查看
写UNICODE字符串到TXT文件里,打开显示乱码,查了相关资料,解决的方法有两种:
1、在写入前插入0xFEFF,让系统认为是Unicode编码。注意,写入后用十六进制编辑器查看高低位是互换的

Unicode:0xFEFF

UTF8:0xEFBBBF

//这是一种解决乱码的方法,在前面写入0xfeff,以unicode方式打开

// WORD a = 0xfeff;//写入0xfeff让记事本以Unicode方式打开,中文不会乱码

// WriteFile(hFile, &a, 2, &dwBytesWrite, NULL);

// if (WriteFile(hFile, szText,dwNumText*2, &dwBytesWrite, NULL))//第三个参数是写入的byte数,因为是宽字符,所以个数要乘以2

//第二种方法,宽窄字符转化

int a = WideCharToMultiByte(CP_ACP, NULL, szText, -1, LPSTR(szTextAnsi), MAX_PATH, NULL, FALSE);//Unicode转换为ANSI,a的值包括了字符串最后的0

if (WriteFile(hFile, szTextAnsi,a-1, &dwBytesWrite, NULL))//写入的时候最后的0不用写入所以要用a-1

{

MessageBox(hwnd,TEXT("写入成功"),TEXT("成功"),0);

}

else

{

MessageBox(hwnd,TEXT("写入失败"),TEXT("出错"),0);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: