Qt, проверка QByteArray на UTF8
Модератор: Модераторы разделов
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Qt, проверка QByteArray на UTF8
Как это сделать? Не нашёл никаких средств, можно ли данный массив конвертировать в строку используя UTF8. Мне это надо, т.к. строка может быть либо в UTF8, либо в CP1251.
-
Женя Подсыпальников
- Сообщения: 482
Re: Qt, проверка QByteArray на UTF8
...блокнот во Венде -
всякому U-формату - заголовок собачит...
Еслив я ему в UTF-8 этот заголовок
перепишу каким либо словом из трёх букв -
тоже не понимает, думает, что ANSI...
всякому U-формату - заголовок собачит...
Еслив я ему в UTF-8 этот заголовок
перепишу каким либо словом из трёх букв -
тоже не понимает, думает, что ANSI...
Пойдём на рыбалку !
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Qt, проверка QByteArray на UTF8
Женя Подсыпальников писал(а): ↑21.02.2007 18:57...блокнот во Венде -
всякому U-формату - заголовок собачит...
Нет, там заголовка нет.
Просто если получилось в UTF8 сконвертировать, хорошо, а если не получилось, как мне об этом узнать?
Посмотрел реализацию QString::fromUtf8, там ошибки не обрабатываются
-
Женя Подсыпальников
- Сообщения: 482
Re: Qt, проверка QByteArray на UTF8
Можа, отвести класс от QByteArray,
где будет дополнительная функция проверки его на UTF-8 ?
Вот, тут принципы UTF-8:
- коли лидирует "0" в байте - ASCII, идём к следующему (это позволено в UTF-8)
- коли лидирует "1" в байте - точно не ASCII, осталось проверить истинность UTF-8
-- количество слитых единиц за этой лидирующей единицей - означает число проверки байтов за этим байтом
-- всякий такой "приклеенный" байт для проверки - должен начинаться с "10" (высшие два бита)
--- коли это так для каждого "предобъявленного" байта - имеем UTF-8
Вот, тут примеры UTF-8 "букв":
'нерусёвая a' :
01100001
'нерусёвая а с двумя точками наверху' :
11000011 10100100
'ф' :
11010001 10000100
'малая грекова дельта' :
11001110 10110100
'знак евра' :
11100010 10000010 10101100
Пойдёт ?
где будет дополнительная функция проверки его на UTF-8 ?
Вот, тут принципы UTF-8:
- коли лидирует "0" в байте - ASCII, идём к следующему (это позволено в UTF-8)
- коли лидирует "1" в байте - точно не ASCII, осталось проверить истинность UTF-8
-- количество слитых единиц за этой лидирующей единицей - означает число проверки байтов за этим байтом
-- всякий такой "приклеенный" байт для проверки - должен начинаться с "10" (высшие два бита)
--- коли это так для каждого "предобъявленного" байта - имеем UTF-8
Вот, тут примеры UTF-8 "букв":
'нерусёвая a' :
01100001
'нерусёвая а с двумя точками наверху' :
11000011 10100100
'ф' :
11010001 10000100
'малая грекова дельта' :
11001110 10110100
'знак евра' :
11100010 10000010 10101100
Пойдёт ?
Пойдём на рыбалку !
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Qt, проверка QByteArray на UTF8
Жутко не хочется такими низкоуровневыми вещами заниматься.. Но видно придётся. Спасибо.