- wxClientDC dc(this);
- wxTextFile ifile;
- ifile.Open(_T("c:/lhq.txt"));
- if (!ifile.IsOpened())
- {
- wxMessageBox(_T("打开失败!"));
- return;
- }
- else
- {
- dc.DrawText(ifile[0], 0, 0);
- }
使用的是unicode版的wxWidgets库。
默认打开文件时转换为utf-8编码(可以改变第二个参数来转换为其它编码),open函数的原型:
bool Open(const wxString& strFile, wxMBConv& conv = wxConvUTF8) const
文件内容是:abc123! 您好! ふるいアルバムめくり 在心中鼓勵著我的人
使用windows自带的记事本,分别使用ansi,unicode,unicode big endian四种编码进行保存。

测试结果:
使用utf-8保存的文件打开和显示正常。如下。简体,繁体和日文均显示正常,

使用其余三种编码ansi,unicode,unicode big endian保存的文件均弹出转换失败的提示:

本文探讨了使用wxWidgets库中的Unicode版本读取不同编码的文本文件。主要关注如何通过wxTextFile类处理UTF-8编码文件,并展示了简体、繁体及日文字符的正确显示方法。
249





