Собираем
информацию
по крупицам
Новости


Новости

MyTetra научилась работать с национальными кодировками в путях к файлам
24-09-2018
00:17:57

Долгое время PIM-менеджер MyTetra умел работать только с директориями, в пути к которым используются только латинские символы. Это обычная проблема для кроссплатформенных программ. Ноги у нее растут из того, что корпорация Microsoft в момент создания Windows-95 посчитала, что системная кодировка (которая используется, в частности, при работе с файлами и каталогами) может отличаться от кодировки консоли. И аукается это даже в Windows 10. Для русскоязычной версии Windows системная кодировка установлена как CP1251, а кодировка консоли CP866. Молодцы, что еще сказать.

 

Наконец, у меня дошли руки поразбираться с этим вопросом. В результате чего было написано две статьи:

 

 

Как в Qt узнать системную кодировку локали под Windows

 

Как в Qt работать с русскими именами файлов и директорий под Windows

 

 

А так же в ветке experimental PIM-Менеджера MyTetra появилось обновление кода, благодаря которому теперь MyTetra может:

 

  • Запускаться из каталога, в пути которого есть национальные символы;
  • Работать с каталогами данных, в пути которого встречаются национальные символы. Это особенно актуально для Windows-пользователей, которые используют русские буквы в своем логине, и устанавливают MyTetra в стандартном режиме (в этом режиме данные размещаются в каталоге пользователя, который и имеет русскоязычные символы в своем названии);
  • Правильно отображать национальные символы в консольном логе, если включена опция логирования отладочных сообщений.

 

Работа проверена на русскоязычной Windows 7 с кодировками CP1251 (системная) + CP866 (консоль) и на Linux с кодировкой локали UTF-8.

 

Эта доработка будет включена в следующий крупный релиз.

 



Интересное на сайте


Интерфейс и юзабилити » Оформление кода: Почему я выбрал для себя отступ в 2 пробела?

В мире программирования существует достаточно холиварная тема: "Каким должен быть отступ в коде"?   Оставим за бортом споры по теме "Форматироват...


Программирование на C++ и Qt » Qt: как бороться с ошибкой "Point size <= 0 (0), must be greater than 0"

Многие, кто делает программы на фреймверке Qt 4.x, может натолкнутся на то, что запущенная программа в какой-то момент начинает сыпать бесконечными пр...


Демо на языке C » KSI Demo

Требования: Windows 95/98/XP или Linux Год: 2004   Пробная демка под Linux, сделанная с помощью мультиплатформенной библиотеки SDL. За основу вз...

RSS подписка

Подпишитесь на новости сайта по RSS

Поделиться этой страницей


Статистика


О, смотри-ка какое хорошее место. Дайте два!

Внимание!


На этом сайте разрабатывается программа MyTetra и её родственные проекты. Доступны к просмотру следующие базы знаний:

 

База Xintrea (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)

База Rarrugas (1, 2)

База Balas

База YellowRaven

База Yurons

База Lesnik757

База Shandor

База Sirrichar

База Anatolean

База Аrmagedec

База SorokinRed

База Deadelf79

База Adgaver (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

База Pipitos1983

База Soxsten

База Silenn

База Shlyapnikova - херомантия и ригидность

База Svoynickname

База Larson227

База Velonski

База BrokeRU

База Mcold

 

Требуют доработки:

 

База Tairesh

База Ivnglkv

База Kolyag87

База Andyk101

База Garik456456

База Harpokrat

База SalexIzyh

База Duwaz

База RuDennn

База Manakaden

База Vitvrn

База Fanrok

 

Подробности на странице MyTetra Share.

 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик