Страница 1 из 1

BOM в GetCapabilities

Добавлено: 30 июн 2015, 14:01
Denis Rykov

Код: Выделить всё

>>> import requests
>>> req = requests.get('http://maps.kosmosnimki.ru/TileService.ashx/apikeyU96GP973UH?SERVICE=WMS&Request=GetCapabilities&VERSION=1.1.1')
>>> req.content[:8]
'\xef\xbb\xbf<?xml'
На этом спотыкается всё тот же OWSLib. Может кто-то пояснить, уместно ли передавать BOM в GetCapabilities, если да, то будем чинить OWSLib.

Re: BOM в GetCapabilities

Добавлено: 30 июн 2015, 14:18
SergeyRyzhkov
Денис,
BOM - Byte order mark :) ? Имеете ввиду ?

Re: BOM в GetCapabilities

Добавлено: 30 июн 2015, 14:25
Denis Rykov
Да, именно его.

Re: BOM в GetCapabilities

Добавлено: 30 июн 2015, 14:29
SergeyRyzhkov
Не использую OWSLib, но я когда делал библиотеки для работы по стандартам OGC, то для MWS предусматривал помимо обязательных параметров для GetCapabilities (наименование сервиса, имя запроса и номер версии) еще дополнительные параметры.
Так что думаю было бы не плохо и Вам предусмотреть.

Или я не так понял :( ?
UPD: Да, не так понял. Прошу прощения :)

Re: BOM в GetCapabilities

Добавлено: 30 июн 2015, 15:02
Ariki
Denis Rykov писал(а):Может кто-то пояснить, уместно ли передавать BOM в GetCapabilities, если да, то будем чинить OWSLib.
BOM вообще мало где уместен. В частности, он ломает совместимость UTF-8 с ASCII и вообще мало где используется за пределами экосистемы Windows. Многие опенсорсные инструменты не умеют работать с ним правильно. В Python, например, при чтении UTF-8 надо явно указывать кодировку utf-8-sig. Собственно, в UTF-8 BOM используется не для указания порядка байт, а как помощь в идентификации кодировки. Но в XML кодировка UTF-8 и так используется по умолчанию, вдобавок её можно указать в прологе документа XML.

Re: BOM в GetCapabilities

Добавлено: 30 июн 2015, 16:06
mamont80
В Геомиксере убрал BOM, не мучайтесь.
Он там был не преднамеренно.