[英]Replacing Double quotes from json request objective c
卡在下面。
我将替换文本字段文本中的""
(双引号)并在 json 请求参数中发送该文本,但下面的代码不起作用
NSString * mString = textfield.text; // Input through ipad/iphone/simulator keypad.
[mString replaceOccurrencesOfString:@"\"" withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [mString length])];.
但是如果我硬编码NSString * mString = @"\\"test"
; // 通过 xcode 输入
replaceOccurrencesOfString:
正在工作。
是双引号输入编码的问题吗?
为什么来自 ipad/iphone/模拟器键盘的双引号与 xcode 双引号的工作方式不同。
谢谢。
默认情况下,iOS 键盘使用“智能”引号...当您打开带引号的字符串部分时使用left double quotation mark
,关闭带引号的部分时使用right double quotation mark
。
所以要去掉这些,你需要替换双引号和左双引号和右双引号。
这是一个快速示例:
NSString *origString = _myTextField.text;
NSString *strippedString = [origString copy];
NSArray *replaceChars = @[@"”", @"“", @"\""];
for (NSString *c in replaceChars) {
strippedString = [strippedString
stringByReplacingOccurrencesOfString:c
withString:@""];
}
NSLog(@"Orig: [%@] / Stripped: [%@]", origString, strippedString);
示例输出:
Orig: [“test”] / Stripped: [test]
您必须仔细观察,但您会看到左右双引号。
编辑
更简洁的方法:
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"”“\""];
NSString *strippedString = [origString stringByTrimmingCharactersInSet:set];
NSLog(@"Orig: [%@] / Stripped: [%@]", origString, strippedString);
但是,正如 Sulthan 所指出的,您可能需要考虑其他语言的标点符号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.