Имя: Пароль:
1C
1С v8
Проблемы с кодировкой веб-сервиса на nuSOAP.php в 1С
0 arturik___1
 
14.04.12
13:30
Никак не получается побороть кракозябры переданные веб-сервисом nuSoap в 1С. То есть ответ 1С принимает без ошибок разбора, но русские буквы отображаются кракозябрами.

То есть примерно так:
PERSON_TYPE_ID: 1
COMMON_INFO: Íîìåð çàêàçà #1; E-Mail : [email protected]; Íàñåëåííûé ïóíêò : 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);
Все заработало!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший