在 objective-c 中转义自定义字符
Escaping custom character in objective-c
我正在使用 macOS,而不是 iOS,XCode 11.
我的应用程序允许在特定位置输入文本。这个文本可以是任何东西。完成后,它会导出一个 csv,该文件将传递给我无法影响的外部进程。
问题:外部进程使用分号“;”作为分隔符(csv 的分隔方式不同)。如果用户写入分号,外部进程将失败。
如果我在 csv 的每个分号之前手动添加一个转义反斜杠,然后将其传递给外部应用程序,它就可以工作。
我需要的是:在最终的 csv 中用一个反斜杠转义每个分号
我试过的
- 用引号转义整个文本 - 失败
- 通过尝试在写入 csv 之前转义 objective-c 中的分号
stringByReplacingOccurrencesOfString(查找 @";" 替换为 @"\;" - 编译器抛出转义字符未知的警告 - 失败
感谢任何帮助
更新:
我也尝试像@Corbell 提到的那样设置双反斜杠,但这导致导出的 CSV 中出现双反斜杠 -> 失败
我还尝试使用其 unicode 字符设置单个反斜杠:
[NSString stringWithFormat:@"%C;",0x5C]; --> "\;"
也失败了,在最终的 CSV 文件中产生了两个反斜杠(我只需要一个)。
在你的 stringByReplacingOccurencesOfString 调用中,第二个参数,尝试用反斜杠转义你的反斜杠,使其成为要插入的文字字符,即 @"\;"
- 否则编译器认为你试图指定 @"\;"
作为无效的转义序列(反斜杠分号)。
已解决。正是 CSV 解析器添加了额外的转义字符。一旦解决,它就像一个魅力。
我正在使用 macOS,而不是 iOS,XCode 11.
我的应用程序允许在特定位置输入文本。这个文本可以是任何东西。完成后,它会导出一个 csv,该文件将传递给我无法影响的外部进程。
问题:外部进程使用分号“;”作为分隔符(csv 的分隔方式不同)。如果用户写入分号,外部进程将失败。 如果我在 csv 的每个分号之前手动添加一个转义反斜杠,然后将其传递给外部应用程序,它就可以工作。
我需要的是:在最终的 csv 中用一个反斜杠转义每个分号
我试过的
- 用引号转义整个文本 - 失败
- 通过尝试在写入 csv 之前转义 objective-c 中的分号 stringByReplacingOccurrencesOfString(查找 @";" 替换为 @"\;" - 编译器抛出转义字符未知的警告 - 失败
感谢任何帮助
更新: 我也尝试像@Corbell 提到的那样设置双反斜杠,但这导致导出的 CSV 中出现双反斜杠 -> 失败 我还尝试使用其 unicode 字符设置单个反斜杠:
[NSString stringWithFormat:@"%C;",0x5C]; --> "\;"
也失败了,在最终的 CSV 文件中产生了两个反斜杠(我只需要一个)。
在你的 stringByReplacingOccurencesOfString 调用中,第二个参数,尝试用反斜杠转义你的反斜杠,使其成为要插入的文字字符,即 @"\;"
- 否则编译器认为你试图指定 @"\;"
作为无效的转义序列(反斜杠分号)。
已解决。正是 CSV 解析器添加了额外的转义字符。一旦解决,它就像一个魅力。