LINUX.ORG.RU

История изменений

Исправление Xintrea, (текущая версия) :

пояснение, зачем это вам нужно

Есть программа на Qt.


1. Мне нужно корректно работать с именами файлов в любой ОС, даже если имя и путь к файлу содержат национальные символы.

Ограничиваюсь только UTF8 (с ней то проблем нет) и однобайтовыми кодировками.

То есть, например, если имя пользователя под виндой задано по-русски, то чтобы достучаться до пользовательского каталога, и создать там конфиг-файл, надо корректно работать с CP866. Это необходимо, потому что путь к конфиг-файлу будет содержать русские символы (имя пользователя) в кодировке CP866.

Поэтому мне и нужно узнавать системную кодировку. Или, правильнее будет кодировку файловой системы?


2. У меня есть окно, которое выводит сообщения стандартного потока запущенной в отдельном процессе программы. Эдакий примитивный эмулятор терминала, который только показывает стандартный вывод. Он выводит данные в кодировке UTF8.

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

Исходная версия Xintrea, :

пояснение, зачем это вам нужно

Есть программа на Qt.


1. Мне нужно корректно работать с именами файлов в любой ОС, даже если имя и путь к файлу содержат национальные символы.

Ограничиваюсь только UTF8 (с ней то проблем нет) и однобайтовыми кодировками.

То есть, например, если имя пользователя под виндой задано по-русски, то чтобы достучаться до пользовательского каталога, и создать там конфиг-файл, надо корректно работать с CP866. Это необходимо, потому что путь к конфиг-файлу будет содержать русские символы (имя пользователя) в кодировке CP866.

Поэтому мне и нужно узнавать системную кодировку. Или, правильнее будет кодировку файловой системы?


2. У меня есть окно, которое выводит сообщения стандартного потока запущенной в отдельном процессе программы. Эдакий примитивный эмулятор терминала который только показывает стандартный вывод. Он выводит данные в кодировке UTF8.

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