Здравствуйте,
нужна помощь с UTF8, обнаружил что когда в arcxml запросе есть знаки, не входящие в ISO-8895-1, тогда в базу данных попадет такой запрос искаженным, данный стринг в SQL превращается в кучу мусора, точно будто программа ожидает 8859-1, но получает UTF8 ...
... вопрос зачем ожидает 88591, когда везде и все настроено под utf8 (база данных utf8, все locales utf8, web server utf8 ...)
запрос:
<?xml version="1.0" encoding="UTF-8" ?>
<ARCXML version="1.1">
<REQUEST>
<GET_FEATURES outputmode="xml" geometry="false" envelope="false" >
<LAYER id="0" />
<SPATIALQUERY subfields="#ALL#" where="(NDSDE.W03_ND_HRCR.NAZEV='Урал')" />
</GET_FEATURES>
</REQUEST>
</ARCXML>
ответ:
<?xml version="1.0" encoding="UTF-8"?><ARCXML version="1.1"><RESPONSE><FEATURES><FEATURECOUNT count="0" hasmore="false" /></FEATURES></RESPONSE></ARCXML>
причем в лог-файле ArcIMS стринг "Урал" еще в порядке, похоже виновато ArcSDE, пробовал также direct connection, но ничего не изменилось
мы полностью перешли на utf, кажется зря :)) но вернутся обратно к iso не хочется, так как все мимо esri работает с utf8 без проблем
интересная вещь, когда arcxml response содержит utf8, тогда тот в полном порядке получаем
запрос:
<?xml version="1.0" encoding="UTF-8" ?>
<ARCXML version="1.1">
<REQUEST>
<GET_FEATURES outputmode="xml" geometry="false" envelope="false" >
<LAYER id="0" />
<SPATIALQUERY subfields="#ALL#" where="(NDSDE.W03_ND_HRCR.NAZEV like '% %')" />
</GET_FEATURES>
</REQUEST>
</ARCXML>
ответ:
<?xml version="1.0" encoding="UTF-8"?><ARCXML version="1.1"><RESPONSE><FEATURES><FEATURE><FIELDS NDSDE.W03_ND_HRCR.ID="0" NDSDE.W03_ND_HRCR.OBJECTID="1" NDSDE.W03_ND_HRCR.NAZEV="Урал" NDSDE.W03_ND_HRCR.ET_ID="0" #SHAPE#="[Geometry]" NDSDE.W03_ND_HRCR.OBJECTID_1="1" SHAPE.AREA="0" SHAPE.LEN="1979877,515794" /></FEATURE><FEATURECOUNT count="1" hasmore="false" /></FEATURES></RESPONSE></ARCXML>
пробовал даже в tomcat установить филтер, котороый все входящие стринги берет как utf8, филтер работает, но это не помогло ... вместе с логфайлом АrcIMS это сводит к мнению, что виноват ArcSDE