使用Quickbooks SDK QBFC 7.0。当我试图获取快速书中所有客户的列表时,如果任何客户的名字中都有一个重音字符,例如è,那么我会得到一个例外:
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 :(得分: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");
答案 1 :(得分:0)
我不知道QBFC中的解决方案,但作为一种解决方法,您可以直接转到qbXML,并使用XML发送和接收此特定消息的响应。听起来你在QBFC中有一个限制,它实际上是底层XML的包装。
答案 2 :(得分:0)
我尝试时出现溢出 要查看试算表报告,有些帐户会显示溢出,因为它没有显示任何数字。
您认为这是一个问题。
由于
理查德