У меня есть программное обеспечение, изначально разработанное 20 лет назад в Visual C ++ с использованием MFC без UNICODE. В настоящее время строки хранятся либо в char [], либо в CString, и работают на компьютерах с Windows на английском и японском языках, пока не будут использованы японские символы, поскольку они обычно преобразуются в странные символы или пустые поля.
Установка UNICODE, вероятно, является шагом вперед, но потребует значительного изменения кода, в то время как довольно многое, похоже, сработает, просто установив System Locale на Japan (в настройке «Язык окна для не-Unicode-программ»). Я понятия не имею, как Windows делает это, но некоторые вещи с японскими символами теперь работают на моем английском ПК с Windows, например Я могу открыть и сохранить японские имена файлов без изменений кода. А в Японии они установили System Locale на английский язык, и опять-таки много работает, но не все.
У меня сложилось впечатление, что проблемы связаны с использованием шрифта, который не включает японские символы. В настоящее время я использую Arial / MS Sans Serif и кодировку, установленную на ANSI_CHARSET или DEFAULT_CHARSET. Есть ли другой шрифт, который я должен использовать, или я могу расширить эти шрифты, чтобы включить японские символы? Или я лаю не на том дереве, и в таком случае, что мне делать дальше? Я очень новичок во всем этом, к сожалению …
Это общий вопрос (хорошо, я думаю, что в 2015 году он уже не так распространен, поскольку программы MBCS, к счастью, являются умирающей породой, хотя я все еще поддерживаю некоторые из них …)
В любом случае, я боюсь, что, в зависимости от вашего определения «работающий», чтобы это работало, вам придется кусать пулю и конвертировать в сборку Unicode. Если вы не можете сделать экономическое обоснование для этого, то вам придется установить правильный языковой стандарт (ну, что еще хуже, пользователь должен выбрать «правильный») и проверить, что работает, а что нет, и спросить больше конкретные вопросы о том, что нет.
Если ваша цель состоит в том, чтобы создать одно приложение, которое правильно отображает строки в различных кодировках «правильным» способом, независимо от настроек локали на компьютере, и совместимо с каждым входным набором данных / содержимым базы данных, при этом пользователю не нужно знать о проблемах кодирования , тогда вам не повезло со сборкой MBCS.
Отсутствие символов шрифта, скорее всего, не проблема. Прежде чем идти дальше и / или задавать дополнительные вопросы, вы должны прочитать http://www.joelonsoftware.com/articles/Unicode.html, прочитайте это снова, спите на этом, прочитайте это снова, объясните кому-то еще, какова связь между «кодированием», «локалью», «набором символов», «шрифтом» и «кодовой точкой Юникода», потому что только после того, как вы сможете это сделать, вы можете решить, как продвигаться в вашем приложении , Извините, это не то, что вы хотите услышать, но это реальность, если вам поручено заниматься интернационализацией.