c# - 在 quickbooks SDK 中使用重音字符

标签 c# sdk quickbooks qbfc

使用 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/

相关文章:

C# 定时器不工作

c# - Powerpoint 到文本 C# - Microsoft.Interop

Android SDK 找不到 JDK

ios - Facebook SDK FBLoginView

c# - 如果它是销售收据的一部分,您如何从 Quickbooks 交易中找到付款行的 TxnLineID?

c# - 使用 StreamSocket 正确接收数据挂起

c# - C# 中使用 System.Threading.Timer 的延迟队列

android - Android SDK中的 "tools.jar"到底是什么?

asp.net - 使用我的应用程序快速书籍向 Web Connector 发送请求

c# - Quickbooks 在线集成 c#