powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / MSVC и GCC: совместимость кодировок исходников
25 сообщений из 409, страница 6 из 17
MSVC и GCC: совместимость кодировок исходников
    #39895835
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
ты выдаёшь себя как не очень в С++
я не профи в плюсах. Заходи в форум почаще.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895836
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav
И обрати внимание никаких самописных классов исключений:

std::ios::exceptions
счас не могу оценить.
А) из коробки пока исключения устраивают.
Б) метод выше надо тестировать на винде и линукс.
Будет проект, посмотрю.

Протестируй, дело полезное. Под MSVC у меня работает. Есть там один нюанс. Я процитирую что не запостил:

PetroNotC Sharp
petrav
забыл

Код: plaintext
1.
2.
3.
4.
QFile file(fileName) ;
if (! file.open(QIODevice::ReadOnly)) {
     QString s = file.errorString()+"\n......
      throw FileErrorException(s) ;


Хотя есть в этом коде один нюанс. Если предположить, что errorString() вернёт какое-то осмысленное и локализованное сообщение об ошибке... Типа: нет прав на открытие файла, файл открыт в другом приложении, файл отсутствует, сбой файловой системы, неправильный формат пути к файлу и все прочие варианты в зависимости от ОС и текущего языка. То, да... Это было бы интересно.

Библиотека В/В в С++ тут вернёт тривиальный строковый комментарий. Но файловый В/В в Qt не тестировал. Но это не повод делать логику зависимой от Qt.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895838
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
То, да... Это было бы интересно.
именно так.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895839
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Там осмысленное. Локализация мне не нужна была. Не проверял.
Может зависит от локали, может нет. Не знаю.
Текст что файл занят другим процессом.
Юзверь сообразит.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895841
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav
А в моём примере классы исключений стандартные.
это первый класс вторая четверть. Во второй класс не пробовал?

Ну ты какие примеры заказываешь - так я и отвечаю. Пока ты спрашивал на уровне первого класса - я так и ответил. Как задашь вопрос уровня 10-го класса - я и на него постараюсь ответить, если будет мне не лень.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895844
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
PetroNotC Sharp
пропущено...
это первый класс вторая четверть. Во второй класс не пробовал?

Ну ты какие примеры заказываешь - так я и отвечаю. Пока ты спрашивал на уровне первого класса - я так и ответил. Как задашь вопрос уровня 10-го класса - я и на него постараюсь ответить, если будет мне не лень.
а по сути?
В плюсах нет пользовательских исключений?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895849
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav
пропущено...

Ну ты какие примеры заказываешь - так я и отвечаю. Пока ты спрашивал на уровне первого класса - я так и ответил. Как задашь вопрос уровня 10-го класса - я и на него постараюсь ответить, если будет мне не лень.
а по сути?
В плюсах нет пользовательских исключений?

В смысле? Это тонкий нюанс и различие: я пишу на С++ или я пишу на Qt. Нужно понимать контекст разговора, иначе фраза будет понята неправильно. Ведь Qt на написан С++.

Конечно, программируя на чистом С++ можно написать пользовательский класс исключения и унаследовать его от стандартного std::exception. А можно свой класс исключений и не наследовать от стандартного класса исключений. А можно пробросить любой стандартный тип или своё перечисление. Всё можно. И Qt написан обычными людьми - и написан он на С++, а не на Qt.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895855
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Ну вот видишь. Ты все понимаешь. Продолжай изучать 5 строк выше на Qt > = 5.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895856
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav,
Ну вот видишь. Ты все понимаешь. Продолжай изучать 5 строк выше на Qt > = 5.

Мда... Тебе сколько лет и какой стаж программирования на С++?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895869
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav, мы уклонились от темы кодировок.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895872
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav, мы уклонились от темы кодировок.
да. Он просил сылку что исключения есть, я ему дал. Все.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895888
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маппинг для upper-lower кириллицы в utf-8.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
unordered_map<int, int> cyrillicUpperMap;
cyrillicUpperMap[0xD0B0] = 0xD090;
cyrillicUpperMap[0xD0B1] = 0xD091;
cyrillicUpperMap[0xD0B2] = 0xD092;
cyrillicUpperMap[0xD0B3] = 0xD093;
cyrillicUpperMap[0xD0B4] = 0xD094;
cyrillicUpperMap[0xD0B5] = 0xD095;
cyrillicUpperMap[0xD191] = 0xD081;
cyrillicUpperMap[0xD0B6] = 0xD096;
cyrillicUpperMap[0xD0B7] = 0xD097;
cyrillicUpperMap[0xD0B8] = 0xD098;
cyrillicUpperMap[0xD0B9] = 0xD099;
cyrillicUpperMap[0xD0BA] = 0xD09A;
cyrillicUpperMap[0xD0BB] = 0xD09B;
cyrillicUpperMap[0xD0BC] = 0xD09C;
cyrillicUpperMap[0xD0BD] = 0xD09D;
cyrillicUpperMap[0xD0BE] = 0xD09E;
cyrillicUpperMap[0xD0BF] = 0xD09F;
cyrillicUpperMap[0xD180] = 0xD0A0;
cyrillicUpperMap[0xD181] = 0xD0A1;
cyrillicUpperMap[0xD182] = 0xD0A2;
cyrillicUpperMap[0xD183] = 0xD0A3;
cyrillicUpperMap[0xD184] = 0xD0A4;
cyrillicUpperMap[0xD185] = 0xD0A5;
cyrillicUpperMap[0xD186] = 0xD0A6;
cyrillicUpperMap[0xD187] = 0xD0A7;
cyrillicUpperMap[0xD188] = 0xD0A8;
cyrillicUpperMap[0xD189] = 0xD0A9;
cyrillicUpperMap[0xD18A] = 0xD0AA;
cyrillicUpperMap[0xD18B] = 0xD0AB;
cyrillicUpperMap[0xD18C] = 0xD0AC;
cyrillicUpperMap[0xD18D] = 0xD0AD;
cyrillicUpperMap[0xD18E] = 0xD0AE;
cyrillicUpperMap[0xD18F] = 0xD0AF;

unordered_map<int, int> cyrillicLowerMap;
cyrillicLowerMap[0xD090] = 0xD0B0;
cyrillicLowerMap[0xD091] = 0xD0B1;
cyrillicLowerMap[0xD092] = 0xD0B2;
cyrillicLowerMap[0xD093] = 0xD0B3;
cyrillicLowerMap[0xD094] = 0xD0B4;
cyrillicLowerMap[0xD095] = 0xD0B5;
cyrillicLowerMap[0xD081] = 0xD191;
cyrillicLowerMap[0xD096] = 0xD0B6;
cyrillicLowerMap[0xD097] = 0xD0B7;
cyrillicLowerMap[0xD098] = 0xD0B8;
cyrillicLowerMap[0xD099] = 0xD0B9;
cyrillicLowerMap[0xD09A] = 0xD0BA;
cyrillicLowerMap[0xD09B] = 0xD0BB;
cyrillicLowerMap[0xD09C] = 0xD0BC;
cyrillicLowerMap[0xD09D] = 0xD0BD;
cyrillicLowerMap[0xD09E] = 0xD0BE;
cyrillicLowerMap[0xD09F] = 0xD0BF;
cyrillicLowerMap[0xD0A0] = 0xD180;
cyrillicLowerMap[0xD0A1] = 0xD181;
cyrillicLowerMap[0xD0A2] = 0xD182;
cyrillicLowerMap[0xD0A3] = 0xD183;
cyrillicLowerMap[0xD0A4] = 0xD184;
cyrillicLowerMap[0xD0A5] = 0xD185;
cyrillicLowerMap[0xD0A6] = 0xD186;
cyrillicLowerMap[0xD0A7] = 0xD187;
cyrillicLowerMap[0xD0A8] = 0xD188;
cyrillicLowerMap[0xD0A9] = 0xD189;
cyrillicLowerMap[0xD0AA] = 0xD18A;
cyrillicLowerMap[0xD0AB] = 0xD18B;
cyrillicLowerMap[0xD0AC] = 0xD18C;
cyrillicLowerMap[0xD0AD] = 0xD18D;
cyrillicLowerMap[0xD0AE] = 0xD18E;
cyrillicLowerMap[0xD0AF] = 0xD18F;
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895889
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для латиницы всё проще. Она отображается 1:1 для младшего байта. Поэтому стандартные функции работать тоже будут.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895893
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для стран центральной Европы которым нужны диакритические знаки (Windows-1250)
https://en.wikipedia.org/wiki/Windows-1250

Я смотрю что можно взять эту табличку 1250 и для диакритических символов просто прибавить
или вычесть 32 и можно получить такие-же маппинги для utf-8.

Ну по крайней мере программно их создать как я сделал для кириллицы.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895894
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В качестве модульного теста. Можно взять начало Войны и Мир Толстого. Пару абзацев.

И если данный текст
-- Еh bien, mon prince. Gênes et Lucques ne sont plus que des apanages,
des поместья, de la famille Buonaparte. Non, je vous préviens, que si vous
ne me dites pas, que nous avons la guerre, si vous vous permettez encore de
pallier toutes les infamies, toutes les atrocités de cet Antichrist (ma
parole, j'y crois) -- je ne vous connais plus, vous n'êtes plus mon ami,
vous n'êtes plus мой верный раб, comme vous dites. [1] Ну,
здравствуйте, здравствуйте. Je vois que je vous fais peur, [2]
садитесь и рассказывайте.
Так говорила в июле 1805 года известная Анна Павловна Шерер, фрейлина и
приближенная императрицы Марии Феодоровны, встречая важного и чиновного
князя Василия, первого приехавшего на ее вечер. Анна Павловна кашляла
несколько дней, у нее был грипп, как она говорила (грипп был тогда новое
слово, употреблявшееся только редкими). В записочках, разосланных утром с
красным лакеем, было написано без различия во всех:
"Si vous n'avez rien de mieux à faire, M. le comte (или mon prince), et
si la perspective de passer la soirée chez une pauvre malade ne vous effraye
pas trop, je serai charmée de vous voir chez moi entre 7 et 10 heures.
Annette Scherer".[3]

Нормально пройдет через функцию. Не рухнет utf-8 валидация и upper/down case отработает то 99% всё мы сделали верно.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895895
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, ага, проделай это для "ß" и мы посмеёмся. Немцам оказалось проще сменить правила языка.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895898
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Ага, ага, проделай это для "ß" и мы посмеёмся. Немцам оказалось проще сменить правила языка.

А что для ß ?

Не существует верхнего или нижнего кейса?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895902
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНе существует верхнего или нижнего кейса?

В классическом немецком языке верхний кейс для этой буквы существует. И это - уже
упомянутая "SS".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895903
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonНе существует верхнего или нижнего кейса?

В классическом немецком языке верхний кейс для этой буквы существует. И это - уже
упомянутая "SS".

Что мешает ту букву заменить на две ss? Конечно, не в одном char, ведь у нас многобайтовые строки.

Вот обратно, да проблема. Если ss не всегда означает ту букву в верхнем регистре.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895908
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravЧто мешает ту букву заменить на две ss?

Одна мелочь: я не совсем прав. Точнее память меня подводит порой. При приведении к апперу
в SS она превращается только если целью такого приведения является алфавитная сортировка
результата. Во всех остальных случаях она в последнее десятилетие приводится к "U+1E9E
LATIN CAPITAL LETTER SHARP S".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895909
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Маппинг для upper-lower кириллицы в utf-8.

Да, хардкорно так, по си плюс-плюсному... Я не знаю мне задавать вопросы? Не, я лучше промолчу многозначительно. Потому что так не может быть, тут что-то другое.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895911
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonНе существует верхнего или нижнего кейса?

В классическом немецком языке верхний кейс для этой буквы существует. И это - уже
упомянутая "SS".

Заказчиком данного топика выступает petrav. И он будет оценивать критерии качества upper/down case.

Беря во внимание что в мире существует 250 стран и в каждой из них по 1.5-2 языка. И существуют
страны которые распадаются и объединяются в данный момент - мы не сможем определить
финальный релиз этой функции никогда.

Мы можем просто подойти к некому критерию достаточности который будет подходящим для petrav.

А вы, если знаете что надо поправить в маппинге - прошу добавить ваши changes.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895913
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА вы, если знаете что надо поправить в маппинге - прошу добавить ваши changes.

Не-не, я лучше не буду соваться. А то я тут почитал википедию об этой букве и выяснил
новость, что в 2017-м году немцы таки завершили свои споры и признали аппер-форму этой
буквы. Правда, там не говорится что они решили с её алфавитным порядком.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895915
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пускай это станет проблемой немцев.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895920
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Dimitry Sibiryakov

пропущено...

В классическом немецком языке верхний кейс для этой буквы существует. И это - уже
упомянутая "SS".

Заказчиком данного топика выступает petrav. И он будет оценивать критерии качества upper/down case.

Беря во внимание что в мире существует 250 стран и в каждой из них по 1.5-2 языка. И существуют
страны которые распадаются и объединяются в данный момент - мы не сможем определить
финальный релиз этой функции никогда.

Мы можем просто подойти к некому критерию достаточности который будет подходящим для petrav.

А вы, если знаете что надо поправить в маппинге - прошу добавить ваши changes.

Тут задача-то проще. Как нам научиться с utf8 выполнять простейшие манипуляции. Причём как в стиле C++ (string), так и в стиле Си (char[]). Учитывать что на каком-то условно испанском такая-то буква апперкейсица по разному в существительных и прилагательных, конечно, нам не нужно. Пока что я вижу какой-то ужас. Во всех смыслах. Ваши таблицы... uppercase...

Но, я почитал про бинарное представление utf8 и пришёл к выводу, что хотя бы семейство printf будет работать правильно, это уже плюс. А вот всякие std::regex... ну...
...
Рейтинг: 0 / 0
25 сообщений из 409, страница 6 из 17
Форумы / C++ [игнор отключен] [закрыт для гостей] / MSVC и GCC: совместимость кодировок исходников
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]