2009-03-10 3 views
3

Использование Quickbooks SDK QBFC 7.0. При попытке получить список всех клиентов в QuickBooks, если какие-либо из клиентов имеет акцентированный характер их имя, как è тогда я получаю исключение:Использование символов с акцентом с быстрыми книгами SDK

An Exception occurred! Type:UTFDataFormatException, Message: invalid byte 2 (<) 
of a 3-byte sequence. SAXParseException: error ar line 1, column 23 in XML data. 

Несколько форумов Intuit сказали, что я должен изменить XML-код для UTF-8 (который, как они говорят, не дает реального решения), QBFC явно использует XML для отправки и получения данных, но я не могу все равно переопределить кодировку по умолчанию.

Запрос создается с помощью следующего кода. Исключение происходит на DoRequests()

IMsgSetRequest req = Session.GetLatestMsgSetRequest(); 
ICustomerQuery cq = req.AppendCustomerQueryRq(); 
IMsgSetResponse responseSet = Session.QBSM.DoRequests(req); 

ответ

0

Я не знаю решения в QBFC, но в качестве обходного пути вы можете перейти непосредственно к QBXML, а также отправлять и получать ответ для этого конкретного сообщения с помощью XML. Похоже, у вас есть ограничение в QBFC, которое действительно является оболочкой для базового XML.

0

Переполнение появляется, когда я попробовал , чтобы просмотреть пробный баланс, некоторые учетные записи отображаются с переполнением, так как не отображаются никакие числа.

Что вы думаете о проблемах.

Благодаря

Ричард

4

QBFC есть ошибка, при которой он не будет кодировать должным образом. Невозможно переопределить кодировку с помощью QBFC. Решения, которые у вас есть, - либо использовать qbXML, либо использовать параметр IncludeRetElementList при создании запроса, он должен правильно закодировать. Имейте в виду, что если вы используете IncludeRetElementList, вы должны указать точные поля, которые вы хотите вернуть.

ICustomerQuery custQuery = MsgRequest.AppendCustomerQueryRq(); 
custQuery.IncludeRetElementList.Add("ListID"); 
custQuery.IncludeRetElementList.Add("Name"); 
custQuery.IncludeRetElementList.Add("FirstName"); 
custQuery.IncludeRetElementList.Add("LastName"); 
custQuery.IncludeRetElementList.Add("ShipAddress"); 
+0

Если это работает, вы - мой новый bff. – Finch042

Смежные вопросы