Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.147.4] |
|
Сообщ.
#1
,
|
|
|
Существует ли кроссплатформенный (Linux, MacOS, Windows) способ получения системной кодировки?
Знаю, что есть setlocale(), но результат её работы в Linux и Windows несколько различается (на Mac попробовать не было возможности), да и выдаёт она не кодировку, а локаль. В принципе, можно обойтись системо-зависимыми решениями и условной компиляцией. Для Linux (думаю, что и для многих других *NIX) кодировку можно получить при помощи nl_langinfo(CODESET). В вот как быть с Windows пока не понятно. Буду признателен за помощь. Если имеет значение, софт пишется с использованием Qt. |
Сообщ.
#2
,
|
|
|
Брр. А что понимается под системной кодировкой? GetSystemDefaultLCID? WinNT+ использует Unicode.
|
Сообщ.
#3
,
|
|
|
Видимо, кодировка, используемая в системой :-). Например, сейчас у меня в Linux UTF-8, лет 6-7 назад была KOI8-R. В Win XP системной является, насколько знаю, CP1251, хотя командная строка до сих пор в CP866.
Локаль сама по себе "ru_RU" или "Russia_Russian" мне не нужна, нужна именно кодировка. |
Сообщ.
#4
,
|
|
|
ну судя по всему кутэ этого не умеет, так же как и, например, ставить системное время
|
Сообщ.
#5
,
|
|
|
Цитата _lcf_ @ ну судя по всему кутэ этого не умеет, так же как и, например, ставить системное время О решении вопроса средствами Qt речи не идет. Меня вполне устроит решение средствами стандартной библиотеки (например, если возможно, при помощи setlocale) или же системо-зависимое. Так, для Linux и, видимо, остальных *NIX можно использовать nl_langinfo, а вот как получить кодировку в Windows пока не ясно. |
Сообщ.
#6
,
|
|
|
GetACP, оно самое?
Добавлено Это применительно функция ANSI естественно. Для Unicode кодовая страница жестко определена. |
Сообщ.
#7
,
|
|
|
Не уверен. Как я понял из описания, это только для ANSI, т.е. какую-нибудь Shift-JIS или Big-5 оно не отловит. Но все равно спасибо за помощь
|
Сообщ.
#8
,
|
|
|
Сообщ.
#9
,
|
|
|
А без WinAPI никак? Эх...
|
Сообщ.
#10
,
|
|
|
Для тех, кто ищет решение, вот две более свежих статьи:
Как в Qt работать с русскими именами файлов и директорий в Windows Как в Qt узнать системную кодировку локали под Windows |