我需要读取具有不同编码的文件。使用
正确读取Unicode文件wxFileInputStream fileInputStream(dialog->GetPath());
wxTextInputStream textInputStream(fileInputStream);
如果我需要阅读Cyrillic(cp1251)文件,我会使用:
wxFileInputStream fileInputStream(dialog->GetPath());
wxTextInputStream textInputStream(fileInputStream, " \n", wxCSConv(wxFONTENCODING_CP1251));
但这两种方式都不适用于这两种文件。在.NET中我们可以使用:
new StreamReader(file, Encoding.Default)
那么在wxWidgets或C ++中,Encoding.Default的替代方法是什么呢?
谢谢
答案 0 :(得分:1)
我相信wxFONTENCODING_SYSTEM类似于Encoding.Default。
答案 1 :(得分:0)
使用wxConvAuto(wxFONTENCODING_SYSTEM)
代替wxCSConv(wxFONTENCODING_SYSTEM)
解决了问题。 wxConvAuto函数首先尝试将文件读取为Unicode文档,然后如果失败,则使用系统的编码来读取ANSI文件。它很棒!