История изменений
Исправление Xenius, (текущая версия) :
Лишнее неудобство для пользователя.
Что неудобство? Возможность выбрать локаль для каждого приложения отдельно? Это не неудобство, а киллер-фича.
А чтоб не выбирать вручную, можно просто сделать какой-нибудь параметр в мета-информации приложения, который говорит какую кодовую страницу использовать для этого приложения. В общих настройках задавать кодовую страницу по умолчанию.
Таким образом, новое приложение с правильным инсталлером — работает сразу и показывает текст в UTF-8, приложение, не устанавливающее нужный параметр (хоть старое, хоть новое) — работает сразу, если выставлена нужная дефолтная страница или после установки этой страницы в настройках совместимости приложения, если какая-то другая. Или после установки другой кодовой страницы в общих настройках системы.
Может быть можно было бы и ещё какой-нибудь аналог #define UNICODE сделать, чтоб информация о том, что приложение использует UTF-8 была и в самом исполнимом файле, главное чтоб он не мешал компилированию на системах отличных от Windows.
Так безо всяких костылей char == ANSI, wchar == юникод
А UTF-8 где тогда?
И как в таком случае без костылей запустить программу, которая уже работает в линуксе с юникодом?
Если приложение написано правильно (в соответствии с winapi, TCHAR для символов)
Если приложение написано «правильно» — оно на линуксе даже не скомпилируется, разве нет? Значит это приложение написано неправильно.
спорное утверждение
Приведи хоть один аргумент против.
Исправление Xenius, :
Лишнее неудобство для пользователя.
Что неудобство? Возможность выбрать локаль для каждого приложения отдельно? Это не неудобство, а киллер-фича.
А чтоб не выбирать вручную, можно просто сделать какой-нибудь параметр в мета-информации приложения, который говорит какую кодовую страницу использовать для этого приложения. В общих настройках задавать кодовую страницу по умолчанию.
Таким образом, новое приложение с правильным инсталлером — работает сразу и показывает текст в UTF-8, приложение, не устанавливающее нужный параметр (хоть старое, хоть новое) — работает сразу, если выставлена нужная дефолтная страница или после установки этой страницы в настройках совместимости приложения, если какая-то другая. Или после установки другой кодовой страницы в общих настройках системы.
Так безо всяких костылей char == ANSI, wchar == юникод
А UTF-8 где тогда?
И как в таком случае без костылей запустить программу, которая уже работает в линуксе с юникодом?
Если приложение написано правильно (в соответствии с winapi, TCHAR для символов)
Если приложение написано «правильно» — оно на линуксе даже не скомпилируется, разве нет? Значит это приложение написано неправильно.
спорное утверждение
Приведи хоть один аргумент против.
Исходная версия Xenius, :
Лишнее неудобство для пользователя.
Что неудобство? Возможность выбрать локаль для каждого приложения отдельно? Это не неудобство, а киллер-фича.
А чтоб не выбирать вручную, можно просто сделать какой-нибудь параметр в мета-информации приложения, который говорит какую кодовую страницу использовать для этого приложения. В общих настройках задавать кодовую страницу по умолчанию.
Таким образом, новое приложение с правильным инсталлером — работает сразу и показывает текст в UTF-8, приложение, не устанавливающее нужный параметр (хоть старое, хоть новое) — работает сразу, если выставлена нужная дефолтная страница или после установки этой страницы в настройках совместимости приложения, если какая-то другая. Или после установки другой кодовой страницы.
Так безо всяких костылей char == ANSI, wchar == юникод
А UTF-8 где тогда?
И как в таком случае без костылей запустить программу, которая уже работает в линуксе с юникодом?
Если приложение написано правильно (в соответствии с winapi, TCHAR для символов)
Если приложение написано «правильно» — оно на линуксе даже не скомпилируется, разве нет? Значит это приложение написано неправильно.
спорное утверждение
Приведи хоть один аргумент против.