Почему приложение Win32 правильно отображает корейские символы на одном компьютере с Windows 10, а не на другом с той же версией и языковыми пакетами?

Наша компания поддерживает приложение Win32. Один из наших клиентов использует английские и корейские (хангул) символы. Один из двух компьютеров правильно отображает корейские символы в определенном наборе полей, а другой неправильно отображает корейские символы, такие как: ). В поле, поддерживающем RTF, текст выглядит так: 주님의 제자교회

Оба компьютера работают под управлением Windows 10 Pro версии 1809. Оба имеют корейский языковой пакет, и оба могут отображать Hangul в других приложениях. Я также продублировал проблему здесь, в нашем офисе, с Windows 10 версии 1903.

Оба компьютера используют один и тот же исполняемый файл и набор данных. Программа запускается пользователями с ярлыка, указывающего на сервер в офисе.

Другой вопрос, который очень похож на этот, находится здесь, но у одного не было двух компьютеров с одним работающим, а другим нет.

Кто-нибудь имеет представление о том, что я мог бы проверить?

1 ответ

Решение

Я подозреваю, что это связано с настройкой для локали системы, которая применяется к приложениям не-Unicode. Он находится в том же месте, что и в Windows 7, но добраться до него немного сложнее.

  1. Сначала нам нужно открыть старый апплет панели управления Region. Вы можете сделать это одним из трех способов:

    • запуск intl.cpl, или
    • Откройте старую панель управления и перейдите в раздел Часы и регион => Изменить формат даты, времени или числа или
    • Откройте новое приложение "Настройки", нажмите "Дополнительные параметры даты, времени и региональных параметров" справа и нажмите "Изменить дату, время или числовые форматы" на старой панели управления, которая должна была появиться.

    Это должно вызвать этот апплет:

  2. Перейдите на вкладку "Администрирование" и проверьте раздел "Язык для программ, не поддерживающих Юникод". Я подозреваю, что они будут другими. Используйте "Изменить системный язык...", чтобы изменить их для соответствия.

Обратите внимание, что это общесистемный параметр, который может нарушать работу приложений, не поддерживающих Юникод, которые предполагают, что Windows находится в локали по умолчанию (обычно это вариант в Западной Европе). Раньше был инструмент под названием AppLocale для установки локали для каждой программы, но он был прекращен после XP. Если вы нуждаетесь в Windows 10, лучше всего использовать Locale Emulator.

Тем не менее, в наши дни большинство программ поддерживают Unicode, поэтому вполне возможно, что изменение языкового стандарта системы не повлияет намного больше, чем одна устаревшая программа, которую вы используете.

Другие вопросы по тегам