0
arturik___1
14.04.12
✎
13:30
|
Никак не получается побороть кракозябры переданные веб-сервисом nuSoap в 1С. То есть ответ 1С принимает без ошибок разбора, но русские буквы отображаются кракозябрами.
То есть примерно так:
PERSON_TYPE_ID: 1
COMMON_INFO: Íîìåð çàêàçà #1; E-Mail : mail@mail.ru; Íàñåëåííûé ïóíêò : 768; Àäðåñ äîñòàâêè :373
Ответ с сервера отправляется вот в таком виде:
<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:ArtExchangeOrders">
<SOAP-ENV:Body>
<ns1:GetOrdersResponse xmlns:ns1="http://tempuri.org">
<return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:Order-item[3]">
<item xsi:type="tns:Order-item">
<ID xsi:type="xsd:int">3</ID>
<LID xsi:type="xsd:string">s1</LID>
<PERSON_TYPE_ID xsi:type="xsd:string">1</PERSON_TYPE_ID>
<COMMON_INFO xsi:type="xsd:string">Номер...</COMMON_INFO>
</item>
</return>
</ns1:GetOrdersResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
|
|
1
arturik___1
14.04.12
✎
14:44
|
Если перекодирую ответ сервера в utf-8,
то есть xml-ответ начинается
<?xml version="1.0" encoding="UTF-8"?>
1С выдает ошибку:
Неизвестная ошибка. Ошибка разбора XML: - [1,39]
Фатальная ошибка:
An exception occurred! Type:UTFDataFormatException, Message:invalid byte 2 (о) of a 2-byte sequence.
по причине:
Ошибка разбора XML: - [1,39]
|
|
2
arturik___1
14.04.12
✎
23:25
|
Задача решилась с помощью функции iconv();
Рабочий метод отдавал результат на кирилице,
внутрь метода вставил iconv("windows-1251", "utf-8", $val);
Все заработало!
|
|