在WxWIdgets中的.NET Encoding.Default替代方案?

时间:2011-05-10 13:45:12

标签: c++ encoding wxwidgets default

我需要读取具有不同编码的文件。使用

正确读取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的替代方法是什么呢?

谢谢

2 个答案:

答案 0 :(得分:1)

我相信wxFONTENCODING_SYSTEM类似于Encoding.Default。

答案 1 :(得分:0)

使用wxConvAuto(wxFONTENCODING_SYSTEM)代替wxCSConv(wxFONTENCODING_SYSTEM)解决了问题。 wxConvAuto函数首先尝试将文件读取为Unicode文档,然后如果失败,则使用系统的编码来读取ANSI文件。它很棒!