Можно ли использовать libxml с юникодом xmlchar? - PullRequest
1 голос
/ 02 января 2009

Возможно ли использовать libxml с юникодом?

Например, функция xmlParseDoc принимает xmlChar

xmlChar имеет следующее определение:

typedef unsigned char xmlChar;

Я бы хотел, чтобы libxml интерпретировал все как 2-байтовые символы.

У меня такое чувство, что с библиотекой не сработает следующее:

typedef unsigned short xmlChar;

Примечание: я не говорю о том, когда он фактически читает / записывает кодировку xml. Я знаю, что поддерживает Unicode. То, что я хочу, чтобы интерфейс в lib был со строками юникода wstring вместо обычных строк.

1 Ответ

4 голосов
/ 02 января 2009

Я нашел ответ в ссылке , предоставленной @Mitch Wheat

Вы не можете переопределить xmlchar как неподписанный шорт. Однако если вы закодируете свои строки как UTF-8, тогда xmlChar будет правильно обрабатывать юникод.

Вы можете преобразовать строку в Windows в UTF8, вызвав WideCharToMultiByte с параметром CP_UTF8

...