包含错字符(')的NSString未正确设置为SOAP服务

时间:2019-06-25 13:58:02

标签: objective-c unicode nsstring

我认为我的问题很奇怪。我有UITextField,其中包含用户名。当包含撇号(')时,服务将无法正确读取用户名。我想它与Unicode连接了。我尝试查看代码是什么,然后得到:

L'TEST - contains code 8217
' - is 39
` - is 96

有人可以向我解释为什么会发生这种情况,以便我解决此问题

2 个答案:

答案 0 :(得分:1)

  

L'TEST-包含代码8217

L’TESTU+2019 ‹’› \N{RIGHT SINGLE QUOTATION MARK}一起使用。如果仔细观察,在大多数字体中,此字符显示时会略有卷曲。这不是撇号,而是误用

  

有人可以向我解释为什么会发生这种情况

常见原因:

  • “傻瓜”一些调皮的输入系统默默地用撇号代替了引号。文字处理器和移动OS屏幕键盘可以做到这一点。这是好话,但有时会产生错误的结果。
  • “无知”用户不知道如何正确键入撇号并选择了相似的引号。
  • “生气”您的UI文本字段(或链中源自用户的其他内容)出于某些延迟原因而禁止输入撇号。用户绝对拒绝编写拼写错误的内容,并手动使用撇号代替引号来解决缺陷软件。
  

所以我可以解决这个问题

这是一个社会问题,而不是软件问题。

答案 1 :(得分:-1)

由于SOAP服务基于XML,单引号是XML的描述符,因此您需要通过在所有文本字段中将“'”替换为“ \'”来转义单引号。这是一个非常普遍的问题。