使用带有quickbooks SDK的重音字符

时间:2009-03-10 15:43:56

标签: c# sdk quickbooks qbfc

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

3 个答案:

答案 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)

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

您认为这是一个问题。

由于

理查德