Я столкнулся с проблемой искажения китайских символов при написании простой страницы с помощью ImGui.,чтобы решить проблему,Пробовал разные методы,Следующее мое решение
Объявление заранее
Метод, представленный в этой статье, для решения проблемы искажения китайских иероглифов.
Он основан на ImGui в среде DX11.
Используется шрифт Microsoft Yahei.
Кодировка файла — UTF-8.
Префикс u8 указывает, что строковый литерал закодирован в UTF-8. При написании строки, содержащей символы, отличные от ASCII (например, многобайтовые символы китайского, японского, корейского и т. д.), в исходном коде или когда вы хотите явно указать ее кодировку как UTF-8, даже если строка не содержат символы, отличные от ASCII. Не забудьте использовать префикс u8.
В целом проблема решается после добавления приставки u8. Если проблемы остались, возможно, китайский шрифт не поддерживается.
Шрифт по умолчанию, предоставленный ImGui, может не поддерживать китайский язык.
Как изменить шрифт ImGui
Обычно мы можем сделать это в проектах Imgui, таких как проекты DX11.
Ниже //Загрузка шрифтов в приведенном примере main.cpp
Найдите эти две строки
Раскомментируйте его или добавьте эти две строки в основной файл, который вы импортировали в Imgui.
AddFontFromFileTTF
Первый параметр,Обычно это расположение соответствующего шрифта.
Большинство библиотек шрифтов расположены в папке C:\Windows\Fonts.
Щелкните правой кнопкой мыши «Свойства», чтобы открыть панель свойств определенного шрифта. В качестве примера мы возьмем Microsoft Yahei.
Вы можете видеть, что msyh.ttc — это имя шрифта.
Убедитесь, что файлы исходного кода(нравиться.cpp
、.h
ждать)Сохранить как формат кодировки, поддерживающий китайский язык.,Решение, которое я предоставляю, предназначено для кодировки файлов UTF-8. В большинстве редакторов кода,Вы можете установить или преобразовать формат кодировки файла.
Ниже представлен быстрый способ переключения кодирования в компиляторе VS.
существоватьVSрасширение в->Плагины поиска в расширениях управленияFileEncodingЗагрузите и установите для быстрого переключения кодировок файлов.
В общем, это мое решение😋