4

使用 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);
4

3 回答 3

6

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");
于 2013-06-28T14:03:20.730 回答
0

我不知道 QBFC 中的解决方案,但作为一种解决方法,您可以直接转到 qbXML,并使用 XML 发送和接收此特定消息的响应。听起来您在 QBFC 中有一个限制,它实际上是底层 XML 的包装器。

于 2009-05-04T20:31:39.923 回答
0

当我试图查看试算表报告时出现溢出,一些帐户显示溢出,因为它没有显示任何数字。

你认为是一个问题。

谢谢

理查德

于 2009-06-15T08:04:22.100 回答