Как отобразить арабскую строку в кодировке Юникод в окне вывода VS?

У меня есть строка Uni-кода на арабском языке для отображения в окне вывода, а не в консоли, поэтому я мог использовать только OutputDebugStringW, и я вызываю SetConsoleOutputCP(1256) для установки арабской кодовой страницы, но все равно он выводит только "????". Что я должен делать...

1 ответ

Это задокументированное ограничение для OutputDebugStringW ():

OutputDebugStringW преобразует указанную строку на основе текущей информации о локали системы и передает ее в OutputDebugStringA для отображения. В результате некоторые символы Unicode могут отображаться неправильно.

Вызов SetConsoleOutputCP() не решает проблему, которая изменяет кодовую страницу для окна консоли, а не отладчик. Вам придется изменить локаль системы, Панель управления + Регион, вкладка "Администрирование". Если арабский язык является вашим любимым языком, то его следует заменить на 1256. Это, конечно, будет иметь общесистемные эффекты.

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