Если я использую версию HttpAddRequestHeadersW и прикрепленную строку в формате Unicode, распознает ли сервер набор символов? Какая сторона отвечает за преобразование кодировки набора символов? Сервер или клиент?
HttpAddRequestHeadersW с заголовком строки Unicode
Ответы (1)
Широкая строка Unicode сначала будет преобразована Windows в кодировку iso-8859-1. Однако практически все символы, отличные от ASCII, запрещены, поэтому вам придется закодировать строку UTF8 в base64, а затем выполнить специальную обработку как на клиенте, так и на сервере, чтобы использовать ее.
Подробнее см. в этом вопросе: Как отправить не- Строка Unicode на английском языке с использованием заголовка HTTP?
person
Jim Beveridge
schedule
01.06.2016
Base64 — не единственный вариант, также подойдет экранирование URL (
%E5
и т. д.). Необходимость пользовательской обработки с обеих сторон означает, что вы можете использовать любую кодировку для печати ASCII.
- person MSalters; 01.06.2016
Но проблема не только в кодировке. Вам также нужно разделить длинные строки и снова объединить их вместе. Хотя это, очевидно, можно сделать вручную с любой кодировкой, это стандартная функция в механизмах кодирования/декодирования Base64, поэтому весьма вероятно, что вы сможете использовать существующую стабильную библиотеку для обработки заголовка.
- person Jim Beveridge; 05.06.2016