MFC下Unicode编码方式,将一段字符串存入UTF-8格式的xml文件A,再从xml文件A读取出来,显示在MFC界面上。该怎么用C++代码实现呢?请提供2个示例
时间: 2024-02-19 15:02:56 浏览: 82
示例一:将字符串存入UTF-8格式的xml文件A
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <codecvt>
using namespace std;
int main()
{
// 待存入的字符串
wstring str = L"这是一个测试";
// 打开文件
wofstream ofs("test.xml");
// 设置文件编码为UTF-8
ofs.imbue(locale(
ofs.getloc(),
new codecvt_utf8<wchar_t, 0x10ffff, consume_header>));
// 写入XML头
ofs << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
// 写入字符串
ofs << "<root>" << str << "</root>";
// 关闭文件
ofs.close();
return 0;
}
```
示例二:从xml文件A读取出字符串并显示在MFC界面上
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <codecvt>
#include <afx.h>
using namespace std;
int main()
{
// 打开文件
wifstream ifs("test.xml");
// 设置文件编码为UTF-8
ifs.imbue(locale(
ifs.getloc(),
new codecvt_utf8<wchar_t, 0x10ffff, consume_header>));
// 读取文件内容到字符串中
wstring str;
getline(ifs, str, static_cast<wchar_t>(EOF));
// 关闭文件
ifs.close();
// 显示字符串
AfxMessageBox(str.c_str());
return 0;
}
```
注意:示例二中使用了MFC库的AfxMessageBox函数来显示字符串,需要在MFC项目中使用,如果是纯Win32项目可以使用MessageBox函数代替。
阅读全文