Page 1 of 1

проблемы с utf-8 без BOM

Posted: Wed Aug 15, 2012 12:32 pm
by Tapok
Всем доброго времени суток...
читаю данные из файла в массив чаров

Code: Select all

char* datafile = new char[f_fsize];
перегоняю в строку и вывожу

Code: Select all

wxString abc = wxString::FromUTF8(datafile);
TextCtrl1->AppendText(abc);
и тут начинаются проблемы:
если файл в кодировке utf8+bom, то со строкой все отлично...
но если файл utf8 без BOM начинается непредсказуемое поведение - строка может выводиться, а может и не выводиться. В wxConvAuto вроде есть функции для работы с BOM/безBOM, но класс доступен в более новых версия wxWidgets, переход на которые весьма проблематичен для меня (в виду нехватки знаний)

собственно вопрос: есть ли вариант как то отключить проверку строки на валидность (предпологаю в этом и есть проблема) :?:

PS code::blocks 10.05 + wxWidgets 2.8.12 + unicode bild

PSS может у кого есть идея альтернативного помещения данных из utf8/безBOM файла в wxString строку с utf8/безBOM кодировкой

Re: проблемы с utf-8 без BOM

Posted: Thu Aug 16, 2012 5:21 am
by borr_1
читаю данные из файла в массив чаров
Зачем такие сложности? Просто wxTextFile использовать нельзя?

И потом если у тебя Unicode, то почему char, а не wchar_t? Символы тупо не влезают в размер char и все.

Re: проблемы с utf-8 без BOM

Posted: Thu Aug 16, 2012 5:33 am
by SteelRat
borr_1
В UTF-8 именно чары, а не вайд. Собстна потому он и 8, а не 16. А wxTextFile - для текста действительно лучше.

Re: проблемы с utf-8 без BOM

Posted: Thu Aug 16, 2012 5:47 am
by borr_1
SteelRat 8 бит да. А почему он иногда может не получить строку. Видимо там нулл от куда-то берется.

Re: проблемы с utf-8 без BOM

Posted: Thu Aug 16, 2012 8:07 pm
by Tapok
wxString abc = wxString::FromUTF8(datafile,size); - явно указал размер строки... пока что работает правильно тьфу-тьфу-тьфу