Альтернатива .NET Encoding.Default в wxWIdgets? - PullRequest
0 голосов
/ 10 мая 2011

Мне нужно читать файлы с разными кодировками.Файлы 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)

Так что же является альтернативой Encoding.Default в wxWidgets или в C ++ в целом?

Спасибо

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Полагаю, wxFONTENCODING_SYSTEM будет аналогом Encoding.Default.

0 голосов
/ 11 мая 2011

Проблема была решена с помощью wxConvAuto(wxFONTENCODING_SYSTEM) вместо wxCSConv(wxFONTENCODING_SYSTEM). Функция wxConvAuto сначала пытается прочитать файл как документ в формате Unicode, а затем, в случае сбоя, использует системное кодирование для чтения файла ANSI. Отлично работает!

...