требуют второй параметр типа чар*, я же передаю вчар. Из за этого не работает. Явное указывание (чар) не помогает. Что делать?
Можно, я тебя сразу забаню ? Так будет всем лучше, в том числе и тебе...
так unicode - это не только UTF-16, но и UTF-8, прекрасно хранящиеся как массивы char, то есть в обычных string и string_view. Хотя лучше конкретизировать - char8_t, char16_t, и тд. а вот wchar, насколько лично я понимаю, какая-то мутная и специфическая для компилятора и платформы тема, которую лучше избегать (поправьте, плиз, если ошибаюсь)
на самом деле тут надо иметь в виду, что одно дело - хранить строки, другое - использовать. Да, utf-8 прекрасно хранится в std::string, но при попытке открыть файл с именем в кодировке utf-8, или отправить строку в std::cout, под виндой по дефолту тебя ждет облом, в то время как в юниксах все должно работать правильно. А вообще если что, сам я не очень разбираюсь в правильном использовании кодировок, так что было бы здорово послушать ответ более сведующего человека =)
"хранится в std::string" - я на си пишу, тут такого не имеется)
ну, в твоем случае все равно надо быть осторожным с IO, вроде fopen - по дефолту в винде она вроде бы не принимает utf-8 и просто не найдет файл с именем, где кроме латиницы есть какие-то символы юникода.
"Для начала начнём, с того, какие кодировки существуют в Windows ОС. Есть два вида кодировок символов: ANSI и UNICODE. Однобайтные символы относятся к ANSI, двухбайтные — к кодировке UNICODE. Мы можем с лёгкостью подключить UNICODE кодировку в свойствах проекта. И тогда в коде создать переменную типа char можно будет так: // создаём строку из 10 элементов: wchar_t str[10]; Если же мы хотим использовать кодировку ANSI, то мы традиционно напишем: // тоже создаём строку из 10 элементов: char str[10];" - тут же чётко говорят, что чтобы использовать юникод нужно писать вчар. Где же истина?
Нет, тут написано неправильно
unicode это просто какой-то способ кодирования символов, не более
Точнее, это стандарт, сопостовляющий каждому символ уникальный числовой код. А также набор фактических правил, как эти символы хранятся в памяти, то есть кодировки.
Обсуждают сегодня