Найти в Дзене
Old Programmer

О кодировке и программировании (C++, библиотека QT). Статья 1

Все ссылки на статьи и ролики моего канала Old Programmer:
Программирование. Тематическое оглавление моего Zen-канала (Old Programmer). А здесь все материалы о программировании на C и C++. Кроме того здесь все о QT: Эта ссылка для вас: Проблемы кодировки в программировании Проблемы кодировки в программировании встречаются часто. За время пока развивались it-технологии было придумано много разных кодировок. Помню те времена, когда web-страницы делались с самыми разными кодировками. Часто браузеры с этим не справлялись. Сегодня это в основном кодировка utf-8. Тут все таки пришли к некоторому единообразию. В unix-подобных системах есть хорошая утилита iconv, с помощью которой можно легко перекодировать текстовый файл из одной кодировки в другую. В Windows программа Far легко перекодирует текстовый файл. Кстати основной кодировкой в ОС Linux является именно utf-8. Ну вот в программировании некоторые вопросы остались. Такой язык как Python изначально ориентирован на кодировку utf-8.
Оглавление

Все ссылки на статьи и ролики моего канала Old Programmer:
Программирование. Тематическое оглавление моего Zen-канала (Old Programmer). А здесь все материалы о программировании на C и C++. Кроме того здесь все о QT:

Путеводитель по моим материалам о программировании с использованием библиотеки Qt
Old Programmer2 октября 2020

Эта ссылка для вас:

Список разделов канала Old Programmer, канала о программировании и программистах
Old Programmer27 мая 2021

Проблемы кодировки в программировании

Проблемы кодировки в программировании встречаются часто. За время пока развивались it-технологии было придумано много разных кодировок. Помню те времена, когда web-страницы делались с самыми разными кодировками. Часто браузеры с этим не справлялись. Сегодня это в основном кодировка utf-8. Тут все таки пришли к некоторому единообразию.

В unix-подобных системах есть хорошая утилита iconv, с помощью которой можно легко перекодировать текстовый файл из одной кодировки в другую. В Windows программа Far легко перекодирует текстовый файл. Кстати основной кодировкой в ОС Linux является именно utf-8.

Ну вот в программировании некоторые вопросы остались. Такой язык как Python изначально ориентирован на кодировку utf-8. Т.е. по-умолчанию вся строковая (текстовая) информация считается в кодировке utf-8. Кроме того, для строк есть методы encode() и decode(), но не о них пока речь.

Но вот с другими языками не все так гладко. Языки C, C++ изначально рассчитаны на однобайтовые строки. И ничего тут сделать нельзя, или пишем свою перекодировку, что в общем то не такая уж сложная задача, если ограничить себя конкретным набором символов, либо придется использовать какие-то сторонние библиотеки.

Пример строк QString в кодировке utf-8

Лично я в таких случаях использую библиотеку Qt. Там строки QString ориентированы как раз на utf-8, кроме того там есть такая удобная вещь как QTextStream. Приведу пример простой консольной программы на C++ с использованием Qt. Программа читает с консоли строку в кодировке utf-8 и возвращает, несколько преобразовав ее. Из самой программы и из результата ее работы вытекает, что обработка строк ведется именно в utf-8.

Ну вот, в общем то и все, пока с кодировкой. В будущем еще вернусь к этому вопросу.

См. также:

О кодировке и программировании (Python). Статья 2
Old Programmer10 июля 2020

До скорого, пока! Подписывайтесь на мой канал Old Programmer.

Программа main1.cpp
Программа main1.cpp