使用 Quickbooks SDK QBFC 7.0。当我尝试获取 quickbooks 中所有客户的列表时,如果任何客户的名字中有重音字符,例如 è,那么我会得到一个异常(exception):
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);
最佳答案
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");
关于c# - 在 quickbooks SDK 中使用重音字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/630854/