Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10 .. 17   вперед  Ctrl
 MSVC и GCC: совместимость кодировок исходников  [new]
petrav
Member

Откуда:
Сообщений: 1742
Допустим у меня есть такой код:
const char *s1 = "Привет.";
const char *s2 = u8"Пока.";

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

Вопрос: что будет с этим файлом в случае Windows+MinGW и Linux+GCC? В какой кодировке стоит сохранять файлы для кроссплатформенной совместимости?
27 ноя 19, 10:21    [22026343]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3011
petrav
Windows+MinGW и Linux+GCC
или Qt Creator?
Там уже свои заморочки.
27 ноя 19, 10:34    [22026352]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 258
petrav,

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

Сообщение было отредактировано: 27 ноя 19, 10:39
27 ноя 19, 10:38    [22026355]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
petrav
Member

Откуда:
Сообщений: 1742
PetroNotC Sharp
petrav
Windows+MinGW и Linux+GCC
или Qt Creator?
Там уже свои заморочки.

Ну вообще да. Именно в связке с Qt. Но там же вроде GCC...
27 ноя 19, 10:45    [22026362]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3011
petrav
Но там же вроде GCC...
что в настройках поставите.

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

extern QString CONST_NAME;
QString CONSTZNAME = " Привет..." ;
27 ноя 19, 10:53    [22026385]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3011
PetroNotC Sharp
QString CONSTZNAME = " Привет..." ;

CONST_NAME окапечатка
27 ноя 19, 10:54    [22026388]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
petrav
Member

Откуда:
Сообщений: 1742
crutchmaster
petrav,

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

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

Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.
27 ноя 19, 10:56    [22026391]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3011
petrav
utf-8 with BOM
да это формат для Qt Creator
27 ноя 19, 10:57    [22026392]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3011
petrav
Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.
Прогресс не стоит на месте. Уже лет 10 как все перешли на utf-8.
27 ноя 19, 10:59    [22026396]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 258
petrav,

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

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

Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.

Ты думаешь я тебе втираю тут про ascii от хорошей жизни?

Сообщение было отредактировано: 27 ноя 19, 11:00
27 ноя 19, 10:59    [22026397]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
petrav
Member

Откуда:
Сообщений: 1742
PetroNotC Sharp
petrav
utf-8 with BOM
да это формат для Qt Creator

Т.е. с такой кодировкой исходников у меня будет и utf-8 и однобайтовые строки в любом окружении? Windows/Linux + MinGW/GCC в любых допустимых их вариациях? Отлично спасибо. :) Вы меня успокоили.
27 ноя 19, 11:09    [22026413]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
petrav
Member

Откуда:
Сообщений: 1742
crutchmaster
petrav,

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

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

Имею большой опыт работы с подобной системой локализации от Qt. Я проклял всё... тогда. :)
Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.

Ты думаешь я тебе втираю тут про ascii от хорошей жизни?[/quot]
Это-то я понимаю.
27 ноя 19, 11:11    [22026416]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3011
petrav
в любом окружении?
не бывает ничего универсального и любого в жизни.
Это закон.
Я компилил под линукс и второй раз под те де исходники под винду.
Работало.
Что я делал не так?
27 ноя 19, 11:14    [22026421]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3011
petrav
в любых допустимых их вариациях
матрицу вариантов еще напиши.
Практический вопрос топика или теория?
27 ноя 19, 11:16    [22026424]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
petrav
Member

Откуда:
Сообщений: 1742
PetroNotC Sharp
petrav
в любых допустимых их вариациях
матрицу вариантов еще напиши.
Практический вопрос топика или теория?

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

И всё. :)
27 ноя 19, 11:20    [22026433]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3011
petrav,
Файлы в utf-8 само ide требует при открытии.
Причем плевать какой текст и код там будет написан.
Тогда всё.
27 ноя 19, 11:31    [22026448]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48912

petrav
Я спрашивал в каком формате мне файлы кодировать

В той, которую укажешь компилятору специально для этого предназначенным ключом.

Posted via ActualForum NNTP Server 1.5

27 ноя 19, 14:09    [22026692]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
ёёёёё
Member

Откуда:
Сообщений: 1560
petrav
...В какой кодировке стоит сохранять файлы для кроссплатформенной совместимости?

utf8+bom - кроссплатформеннее некуда. И разлюбезная Qt их понимает без дополнительных стуков в бубен.
27 ноя 19, 14:34    [22026718]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
a guest
Member

Откуда:
Сообщений: 155
petrav
Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.
Enjoy your Windows™®
27 ноя 19, 16:41    [22026843]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 1078
petrav
Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.

не потому ли, что MS изобрела свои собственные кодировки (codepages), штобы "не быть как все"
27 ноя 19, 21:52    [22027040]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
petrav
Member

Откуда:
Сообщений: 1742
полудух
petrav
Вообще эти проблемы с кодировками бесят неимоверно, какое-то болото на ровном месте.

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

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

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

char*
string
wstring
u8string
u16string
u32string
string_view
wstring_view

Мне иногда кажется, что мы наблюдаем закат C++. Особенно я в этом уверился когда комитет определил std::byte как strong enum...
28 ноя 19, 09:43    [22027274]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 258
petrav,

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

Ты не знаешь что из себя представляет utf-8, а виноваты клятые крестовики.

Сообщение было отредактировано: 28 ноя 19, 09:55
28 ноя 19, 09:54    [22027290]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
petrav
Member

Откуда:
Сообщений: 1742
crutchmaster
petrav,

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

Ты не знаешь что из себя представляет utf-8, а виноваты клятые крестовики.

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

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

Что я делаю не так?
28 ноя 19, 10:08    [22027313]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 258
petrav
В теории знаю, там ничего сложного.

Я вчера гуглил

Так, всё понятно.
std::mblen()

И что ты собрался им мерить?
везде советуют использовать сторонние библиотеки: ICU или utfcpp.

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

Ссыш против ветра. Ты пишешь под кутэ? Вот и юзай его фишки. А utfcpp - вообще header-only, какие проблемы? Но нет, надо жрать кактус с wchar*/wstring и ныть о том, какие все му**ки.
28 ноя 19, 10:22    [22027330]     Ответить | Цитировать Сообщить модератору
 Re: MSVC и GCC: совместимость кодировок исходников  [new]
petrav
Member

Откуда:
Сообщений: 1742
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?
28 ноя 19, 10:36    [22027342]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10 .. 17   вперед  Ctrl
Все форумы / C++ Ответить