Dmitry Develop: post #317 — TG.ME

Dmitry Developimage_2025-01-11_21-24-01.png
// compile_flags.txt
...
-fexec-charset=windows-1251


Никто не знает можно ли как-то clangd указать execution charset для строковых литералов?

Файл исходного кода у меня в utf-8, но -fexec-charset=windows=1251 перекодирует строки в windows-1251 в скомпилированной программе.

Соответственно я хочу, чтобы визуальные подсказки по ordinary string literal отображались с правильным размером типа данных (const char[N]) и правильными кодами символов (codepoint).

При указании аргумента, отличного от utf-8, для -finput-charset или -fexec-charset, в редакторе появляется ошибка:
Invalid value 'windows-1251' in '-fexec-charset=windows-1251' clang(drv_invalid_value).
Ошибка появляется для любого значения, отличного от utf-8.

По информации из интернета я понял, вроде, что дело то ли в используемом кодировщике iconv или ICU и какой-то их особенности под windows в виде отсутствии поддерживания другой кодировки.
То ли это особенность самого clangd, который также не поддерживает кодировку любую другую кодировку кроме utf-8.

ссылка на канал | ссылка на группу
🔥1
January 11, 2025 639 1 2