【问题标题】:.NET Encoding.Default alternative in wxWIdgets?wxWIdgets 中的 .NET Encoding.Default 替代方案?
【发布时间】:2011-05-10 13:45:11
【问题描述】:

我需要读取不同编码的文件。使用正确读取 Unicode 文件

wxFileInputStream fileInputStream(dialog->GetPath());
wxTextInputStream textInputStream(fileInputStream);

如果我需要读取西里尔文 (cp1251) 文件,我会使用:

wxFileInputStream fileInputStream(dialog->GetPath());
wxTextInputStream textInputStream(fileInputStream, " \n", wxCSConv(wxFONTENCODING_CP1251));

但是这两种方式都不适用于这两种文件。在 .NET 中,我们可以使用:

new StreamReader(file, Encoding.Default)

那么在 wxWidgets 或一般的 C++ 中 Encoding.Default 的替代方案是什么?

谢谢

【问题讨论】:

    标签: c++ encoding wxwidgets default


    【解决方案1】:

    我相信wxFONTENCODING_SYSTEM 会类似于 Encoding.Default。

    【讨论】:

    【解决方案2】:

    问题已通过使用wxConvAuto(wxFONTENCODING_SYSTEM) 而不是wxCSConv(wxFONTENCODING_SYSTEM) 解决。 wxConvAuto 函数首先尝试将文件作为 Unicode 文档读取,然后如果失败,它会使用系统的编码来读取 ANSI 文件。效果很好!

    【讨论】:

      猜你喜欢
      • 2017-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多