powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / MSVC и GCC: совместимость кодировок исходников
25 сообщений из 409, страница 1 из 17
MSVC и GCC: совместимость кодировок исходников
    #39894873
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим у меня есть такой код:
Код: plaintext
1.
2.
const char *s1 = "Привет.";
const char *s2 = u8"Пока.";


Будучи сохранённым в файл в кодировке utf-8 with BOM в MSVC первая строка в кодировке local-8bit, а вторая строка - utf-8. Конечно, речь идёт о времени исполнения приложения.

Вопрос: что будет с этим файлом в случае Windows+MinGW и Linux+GCC? В какой кодировке стоит сохранять файлы для кроссплатформенной совместимости?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894876
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Windows+MinGW и Linux+GCC
или Qt Creator?
Там уже свои заморочки.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894878
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,

Какие "Привет, пока"? Какой UTF? Только ASCII. Зачем тебе создавать проблемы? Локализация делается в отдельном файле, откуда вытаскивается gettext'ом.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894883
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav
Windows+MinGW и Linux+GCC
или Qt Creator?
Там уже свои заморочки.

Ну вообще да. Именно в связке с Qt. Но там же вроде GCC...
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894898
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Но там же вроде GCC...
что в настройках поставите.

petrav
Именно в связке с Qt

extern QString CONST_NAME;
QString CONSTZNAME = " Привет..." ;
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894900
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
QString CONSTZNAME = " Привет..." ;

CONST_NAME окапечатка
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894901
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
petrav,

Какие "Привет, пока"? Какой UTF? Только ASCII. Зачем тебе создавать проблемы? Локализация делается в отдельном файле, откуда вытаскивается gettext'ом.

Это было бы идеально. Но... использование подобных инструментов резко повышает муторность разработки, а гибкость в создании локализаций мне не нужна. UTF-8 нужен что бы строки передавать в интерфейсы Qt. Он понимает только UTF-8. Можно, конечно, каждый раз преобразовывать средствами самого Qt.

Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894902
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
utf-8 with BOM
да это формат для Qt Creator
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894905
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.
Прогресс не стоит на месте. Уже лет 10 как все перешли на utf-8.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894906
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,

Но... использование подобных инструментов резко повышает муторность разработки, а гибкость в создании локализаций мне не нужна
То есть, находишь опечатку и ставишь пересобирать - норм. Заюзать попсовый gettext - не норм.

Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.
Ты думаешь я тебе втираю тут про ascii от хорошей жизни?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894916
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav
utf-8 with BOM
да это формат для Qt Creator

Т.е. с такой кодировкой исходников у меня будет и utf-8 и однобайтовые строки в любом окружении? Windows/Linux + MinGW/GCC в любых допустимых их вариациях? Отлично спасибо. :) Вы меня успокоили.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894919
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
petrav,

Но... использование подобных инструментов резко повышает муторность разработки, а гибкость в создании локализаций мне не нужна

То есть, находишь опечатку и ставишь пересобирать - норм. Заюзать попсовый gettext - не норм.
Имею большой опыт работы с подобной системой локализации от Qt. Я проклял всё... тогда. :)
Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.
Ты думаешь я тебе втираю тут про ascii от хорошей жизни?[/quot]
Это-то я понимаю.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894922
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
в любом окружении?
не бывает ничего универсального и любого в жизни.
Это закон.
Я компилил под линукс и второй раз под те де исходники под винду.
Работало.
Что я делал не так?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894924
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
в любых допустимых их вариациях
матрицу вариантов еще напиши.
Практический вопрос топика или теория?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894930
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav
в любых допустимых их вариациях
матрицу вариантов еще напиши.
Практический вопрос топика или теория?

Я спрашивал в каком формате мне файлы кодировать, что бы при задаче (вполне вероятной) портировать на Linux (или на MinGW) мне не пришлось всю программу переписывать. Ответ я получил: файлы исходников в кодировке utf-8 with BOM.

И всё. :)
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39894938
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Файлы в utf-8 само ide требует при открытии.
Причем плевать какой текст и код там будет написан.
Тогда всё.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895077
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravЯ спрашивал в каком формате мне файлы кодировать

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

utf8+bom - кроссплатформеннее некуда. И разлюбезная Qt их понимает без дополнительных стуков в бубен.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895161
a guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petrav
Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.
Enjoy your Windows™®
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895271
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.

не потому ли, что MS изобрела свои собственные кодировки (codepages), штобы "не быть как все"
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895377
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух
petrav
Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.

не потому ли, что MS изобрела свои собственные кодировки (codepages), штобы "не быть как все"

А что такого Майкрософт разработала? UTF-16? BOM? Я просто не в курсе.

И уж точно не майкрософт разработала язык в котором восемь строковых типов и отсутствуют инструменты работы с "супер" кодировкой utf-8:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
char*
string
wstring
u8string
u16string
u32string
string_view
wstring_view


Мне иногда кажется, что мы наблюдаем закат C++. Особенно я в этом уверился когда комитет определил std::byte как strong enum...
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895385
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,

и отсутствуют инструменты работы с "супер" кодировкой utf-8
Ты не знаешь что из себя представляет utf-8, а виноваты клятые крестовики.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895398
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
petrav,

и отсутствуют инструменты работы с "супер" кодировкой utf-8

Ты не знаешь что из себя представляет utf-8, а виноваты клятые крестовики.
В теории знаю, там ничего сложного. Я вчера гуглил и везде советуют использовать сторонние библиотеки: ICU или utfcpp. Или писать свои костыли. В библиотеках ICU и utfcpp наверняка тоже свои велосипеды и костыли типа QString.

Особенно меня убило, что они std::mblen() сделали *не* потокобезопасной или заторможенной из-за скрытого использования TLS.

Что я делаю не так?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895411
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
В теории знаю, там ничего сложного.

Я вчера гуглил
Так, всё понятно.
std::mblen()
И что ты собрался им мерить?
везде советуют использовать сторонние библиотеки: ICU или utfcpp.
Конечно везде советуют сторонние библиотеки. Плюсы предоставляют инструменты для работы с кучей байт. Символы utf - это не байты. Длинна символа может быть от 1 до 4 байт, там могут быть еще всякие модификаторы и прочие подводные камни. Ты все это собрался реализовать?
Что я делаю не так?
Ссыш против ветра. Ты пишешь под кутэ? Вот и юзай его фишки. А utfcpp - вообще header-only, какие проблемы? Но нет, надо жрать кактус с wchar*/wstring и ныть о том, какие все му**ки.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39895419
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster

std::mblen()

И что ты собрался им мерить?
Он возвращает длину текущего многобайтового символа. В байтах.

crutchmaster
везде советуют использовать сторонние библиотеки: ICU или utfcpp.

Конечно везде советуют сторонние библиотеки. Плюсы предоставляют инструменты для работы с кучей байт. Символы utf - это не байты. Длинна символа может быть от 1 до 4 байт, там могут быть еще всякие модификаторы и прочие подводные камни.
Я это знаю уже лет 10-ть.

Вот это меня и раздражает, что в 2019-м году, после стольких лет развития, С++ не предоставляет возможности работать со строками, а только с кучей байт работает! Что я должен подключать какое-то стороннее велосипедирование с произвольным уровнем кривизны. Завтра это костылирование перестанут поддерживать и что тогда?

crutchmaster
Ты все это собрался реализовать?

Нет, конечно.

crutchmaster
Что я делаю не так?

Ссыш против ветра. Ты пишешь под кутэ? Вот и юзай его фишки. А utfcpp - вообще header-only, какие проблемы? Но нет, надо жрать кактус с wchar*/wstring и ныть о том, какие все му**ки.
На Qt я пишу только GUI. А логику на С++. А utfcpp - это сторонний костыль.

Кстати, QString тоже использует utf-16. Почему я не могу использовать wchar_t?
...
Рейтинг: 0 / 0
25 сообщений из 409, страница 1 из 17
Форумы / C++ [игнор отключен] [закрыт для гостей] / MSVC и GCC: совместимость кодировок исходников
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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