История изменений
Исправление Xintrea, (текущая версия) :
пояснение, зачем это вам нужно
Есть программа на Qt.
1. Мне нужно корректно работать с именами файлов в любой ОС, даже если имя и путь к файлу содержат национальные символы.
Ограничиваюсь только UTF8 (с ней то проблем нет) и однобайтовыми кодировками.
То есть, например, если имя пользователя под виндой задано по-русски, то чтобы достучаться до пользовательского каталога, и создать там конфиг-файл, надо корректно работать с CP866. Это необходимо, потому что путь к конфиг-файлу будет содержать русские символы (имя пользователя) в кодировке CP866.
Поэтому мне и нужно узнавать системную кодировку. Или, правильнее будет кодировку файловой системы?
2. У меня есть окно, которое выводит сообщения стандартного потока запущенной в отдельном процессе программы. Эдакий примитивный эмулятор терминала, который только показывает стандартный вывод. Он выводит данные в кодировке UTF8.
Нужно, чтобы национальные символы выводились правильно. То есть, перед тем как вывести символы в терминал, их нужно преобразовать из системной кодировки в UTF8.
Исходная версия Xintrea, :
пояснение, зачем это вам нужно
Есть программа на Qt.
1. Мне нужно корректно работать с именами файлов в любой ОС, даже если имя и путь к файлу содержат национальные символы.
Ограничиваюсь только UTF8 (с ней то проблем нет) и однобайтовыми кодировками.
То есть, например, если имя пользователя под виндой задано по-русски, то чтобы достучаться до пользовательского каталога, и создать там конфиг-файл, надо корректно работать с CP866. Это необходимо, потому что путь к конфиг-файлу будет содержать русские символы (имя пользователя) в кодировке CP866.
Поэтому мне и нужно узнавать системную кодировку. Или, правильнее будет кодировку файловой системы?
2. У меня есть окно, которое выводит сообщения стандартного потока запущенной в отдельном процессе программы. Эдакий примитивный эмулятор терминала который только показывает стандартный вывод. Он выводит данные в кодировке UTF8.
Нужно, чтобы национальные символы выводились правильно. То есть, перед тем как вывести символы в терминал, их нужно преобразовать из системной кодировки в UTF8.