Мы достигли цели небольшая загвоздка: мы шведы, и нам бы хотелось использовать некоторые специальные буквы, отличные от ASCII, а именно å, ä и ö (они используются во многих шведских словах). Однако я не могу заставить Raylib-cs отображать что-либо выше кода 127 — по крайней мере, не используя DrawText.
Вместо этого я получаю только ?.
Это в Windows 10, 64-разрядная версия, 20H2. Использование dotnet 5 (последней версии) и, в первую очередь, Raylib-cs, доступного в виде пакета nuget.
Что я пробовал до сих пор:
- DrawText и DrawTextEx. Тот же результат.
- Загрузка разных шрифтов с явным включением кодовых точек до 255 или без него. Тот же результат.
- Получение последней версии Raylib-cs из страница github. Тот же результат.
- Запуск того же кода, но на виртуальной машине Debian. ЭТО РАБОТАЕТ, так что проблема, похоже, в Windows.
- Попросить друга, который хорошо разбирается в C/C++, попробовать использовать åäö с помощью Raylib в C++. ЭТО РАБОТАЕТ, значит, проблема, похоже, специфична для Raylib-cs, хотя это всего лишь оболочка?
- DrawTextCodepoint. ЭТО РАБОТАЕТ, а это означает, что по какой-то причине проблема связана с методами DrawText (и InitWindow). Предполагается, что Raylib поддерживает Unicode, и это доказывает, что, по крайней мере теоретически, это так.
Код: Выделить всё
static void Main(string[] args)
{
int font_size = 10;
Raylib.InitWindow(800, font_size * 64, "åäö");
while (!Raylib.WindowShouldClose())
{
Raylib.BeginDrawing();
Raylib.ClearBackground(Color.BEIGE);
for (int i = 0; i < 255; i++)
{
int col = i / 64;
int x = col * 200;
int y = (i % 64) * font_size;
string text = i.ToString() + " | " + ((char)i).ToString();
Raylib.DrawText(text, x, y, font_size, Color.BLACK);
}
Raylib.EndDrawing();
}
}
Результат в Debian: заголовок окна bar стоит "åäö", и все символы рисуются как надо.
Кто-нибудь сталкивался с такой проблемой? У кого-нибудь есть (проверенные) решения?
Есть ли какая-то известная особенность в том, как C#, особенно в Windows, обрабатывает строки или что-то в этом роде?
Подробнее здесь: https://stackoverflow.com/questions/657 ... in-windows