【发布时间】:2019-11-07 09:29:17
【问题描述】:
我的观点很奇怪。我有UITextField,其中包含用户名。当它包含撇号 (') 时,服务无法正确读取用户名。我想它与Unicode有关。我试着看看代码是什么,我得到了:
L'TEST - contains code 8217
' - is 39
` - is 96
谁能向我解释为什么会发生这种情况,以便我解决这个问题
【问题讨论】:
标签: objective-c unicode nsstring
我的观点很奇怪。我有UITextField,其中包含用户名。当它包含撇号 (') 时,服务无法正确读取用户名。我想它与Unicode有关。我试着看看代码是什么,我得到了:
L'TEST - contains code 8217
' - is 39
` - is 96
谁能向我解释为什么会发生这种情况,以便我解决这个问题
【问题讨论】:
标签: objective-c unicode nsstring
L'TEST - 包含代码 8217
那将是 L’TEST 和 U+2019 ‹’› \N{RIGHT SINGLE QUOTATION MARK}。如果您仔细观察,在大多数字体中,这个字符会略微卷曲。这不是撇号,而是误用。
谁能解释一下为什么会这样
常见原因:
所以我可以解决这个问题
这是一个社会问题,而不是软件问题。
【讨论】:
',所以我需要进行替换。顺便说一句,在 iOS 键盘上符号是 right single quoted mark,但在 Android 上是 ' 和 `。
由于 SOAP 服务基于 XML 并且单引号是 XML 中的一个定界符,因此您需要通过在所有文本字段中将“'”替换为“\'”来转义单引号。这是一个很常见的问题。
【讨论】:
NSString 中的那个符号。例如,当我决定用zzz 替换' 时,我得到了L'TEST,但是当我尝试用zzz 替换L 时,我得到了zzz'TEST。