我正在使用 .NET SDK 从另一个接受 UTF-8 数据编码的系统导入客户和交易,但在处理特殊字符时遇到了很多麻烦。是否有 (a) 需要转义哪些字符(如撇号)和 (b) QBO 中不允许使用哪些字符(如冒号)的完整列表?我在在线文档中所能找到的只是“使用反斜杠来转义撇号等特殊字符”。好的,那么与号、长破折号、短破折号、重音符号、锐音符号呢……您明白了。
此问题会影响查询和插入,从而导致各种问题。例如,如果我们按姓名查询客户,并且查询失败(可能是由于无效字符),我们尝试将客户插入到 QBO 中,这当然也会失败,因为客户存在或无效字符。确实,我们通常可以确定查询失败是由于字符错误还是记录不存在,但我们需要一个设计时解决方案。有什么建议吗?
最佳答案
如果您使用查询端点,请对查询参数进行 URL 编码。
对于前 -
对于以下查询
select * from Customer where DisplayName='Aülleünte'
URL 请求将是
https://quickbooks.api.intuit.com/v3/company/<relamId>/query?query=select+*+from+Customer+where+DisplayName%3D%27A%C3%BClle%C3%BCnte%27
PN - 某些 QBO 文本字段(例如 - 客户窗口的“描述/注释”)允许输入作为查询响应的一部分返回的控制字符。由于 XML 不支持其中一些字符,因此对象反序列化失败/显示警告。 您应该从 UI 中删除这些字符,或者需要在客户端代码中使用一些 lib/regex 以编程方式删除这些字符。理想情况下,它应该在服务器端处理。
QBO Global UI 当然支持 UTF-8 编码。但看起来,QBO US UI 在处理特殊字符时的行为有所不同。
例如 - 在 QBO US UI 中,如果您输入“你好吗
”,那么保存后,它会转换为“}Î
”。
编辑
以下是可接受的字符列表:
•字母数字(A-Z、a-z、0-9)
•逗号 (,)
•点或句点 (.)
•问号(?)
•符号(@)
•与号 (&)
•感叹号(!)
•数字/井号 (#)
•单引号 (')
•波形符 (~)
•星号 (*)
•空格 ( )
•下划线(_)
•减号/连字符 (-)
•分号 (;)
•加号(+)
关于intuit-partner-platform - QBO API v3 .NET SDK 中的特殊字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27693578/