Данные XML UTF-8 записываются по-разному - PullRequest
2 голосов
/ 24 ноября 2010

К сожалению, я работаю в малоизвестной платформе, называемой uniPaaS, поэтому я, вероятно, следую некоторому не зависящему от платформы совету.

У меня есть запрос веб-службы, где документ XML содержит эти раздражающие умные цитаты.Байтовые данные для символа: E2 80 99 (это 00002019 RIGHT SINGLE QUOTATION MARK)

Wireshark capture of SOAP request

Когда я записываю файл XML на диск в нашей постановкесервер, он пишет это правильно.Когда я пишу его на нашем производственном сервере, он полностью меняет значения этих байтов и искажает документ XML:

Hex comparison of the two files

E2 80 99 становится 92.Кто-нибудь когда-либо видел такое поведение раньше?Кажется, что это только одна байтовая строка (но резонанс SOAP составляет 50 МБ, поэтому у меня не было возможности проверить весь файл).

1 Ответ

7 голосов
/ 24 ноября 2010

Кодируется как CP1251.

>>> '\x92'.decode('cp1251').encode('utf-8')
'\xe2\x80\x99'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...