Можно ли использовать libxml с unicode xmlchar?
Вопрос
Можно ли использовать libxml с unicode?
Например, функция xmlParseDoc принимает xmlChar
xmlChar имеет следующее определение:
typedef unsigned char xmlChar;
Я бы хотел, чтобы libxml интерпретировал все как 2-байтовые символы.
У меня есть ощущение, что следующее не будет работать должным образом с библиотекой:
typedef unsigned short xmlChar;
Примечание:Я не говорю о том, когда он на самом деле считывает / записывает XML-кодировку.Я знаю, что это поддерживает unicode.Что я хочу, так это чтобы интерфейс в lib был со строками unicode wstring вместо обычных строк.
Решение
Я нашел ответ в Ссылка предоставлено @Mitch Wheat
Вы не можете переопределить xmlchar как короткое значение без знака.Однако, если вы закодируете свои строки как UTF-8, то xmlChar будет правильно обрабатывать unicode.
Вы можете преобразовать строку в Windows в UTF8, вызвав WideCharToMultiByte с параметром CP_UTF8