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

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
Tapok
Earned a small fee
Earned a small fee
Posts: 22
Joined: Sun Aug 12, 2012 3:41 pm

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

Post by Tapok » Wed Aug 15, 2012 12:32 pm

Всем доброго времени суток...
читаю данные из файла в массив чаров

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 кодировкой
win7x64, codeblocks 12.11, MinGW 5.1.4, wxWidgets 2.8.12

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

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

Post by borr_1 » Thu Aug 16, 2012 5:21 am

читаю данные из файла в массив чаров
Зачем такие сложности? Просто wxTextFile использовать нельзя?

И потом если у тебя Unicode, то почему char, а не wchar_t? Символы тупо не влезают в размер char и все.
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

SteelRat
Experienced Solver
Experienced Solver
Posts: 50
Joined: Tue Sep 08, 2009 4:42 pm
Location: Russia, Obninsk

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

Post by SteelRat » Thu Aug 16, 2012 5:33 am

borr_1
В UTF-8 именно чары, а не вайд. Собстна потому он и 8, а не 16. А wxTextFile - для текста действительно лучше.
Win7/LinuxMint 17, VS2013/C::B, wxWidgets 3.0 x64

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

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

Post by borr_1 » Thu Aug 16, 2012 5:47 am

SteelRat 8 бит да. А почему он иногда может не получить строку. Видимо там нулл от куда-то берется.
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

Tapok
Earned a small fee
Earned a small fee
Posts: 22
Joined: Sun Aug 12, 2012 3:41 pm

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

Post by Tapok » Thu Aug 16, 2012 8:07 pm

wxString abc = wxString::FromUTF8(datafile,size); - явно указал размер строки... пока что работает правильно тьфу-тьфу-тьфу
win7x64, codeblocks 12.11, MinGW 5.1.4, wxWidgets 2.8.12

Post Reply