防止 NSString 转义内容
Prevent NSString to escape contents
抱歉可能是新手问题。
由于各种原因,我被一个看起来像这样的特殊字符串所困扰:
NSString *myString = @"A\314\212A\314\210O\314\210.jpg";
我可以用一些忍者的方式删除双 \\ 并强制 NSString 理解该字符串是 Uniencoded 并且应该像这样阅读
NSString *myString = @"A42A40O40.jpg"; // Displays ÅÄÖ as expected
我尝试了不同的策略试图替换所有斜杠 ("\"),但是只要我添加一个 ("\") NSString 就会添加另一个以转义第一个。我被困在这里...
是否可以防止 NSString 转义我的字符串?
更新
我知道这是一个特例。从读取用户驱动器上的文件的终端程序读取输出。通过 NSTask,我将输出捕获到 NSString 中以进行解析并将其拆分为数组。只要没有非 ascii 字符,它就可以很好地工作。 HFS+ 使用略有不同的 Unicode 编码非 ASCII 字符,称为 NFD。
当我捕获响应时,ÅÄÖ 已经像这样编码在 qoutes 中:
file.jpg
file2.jpg
"A42A40O40.jpg"
当我创建一个 NSString 并使用捕获的响应时,它第二次被 NSString 转义。
A\314\212A\314\210O\314\210.jpg
我知道这不是最佳选择,但现在我无法控制终端程序输出的内容。通常当使用此 NFD 编码创建 NSString 时,Objectiv-C 会为您处理 encoding/decoding 。但是因为我有一个包含混合和双重转义内容的字符串,所以我很难创建它并让 NSString 理解内容是用这种编码编码的。
基本上我想这样:
decodedString = [output stringByReplacingOccurrencesOfString:@"\\"
withString:@"\"];
但在幕后,NSString 总是为您转义 \ 和另一个 \,所以我想要一种创建 "raw" 字符串的方法,而不会受到 NSString 的干扰。
已经尝试了各种方法来尝试在 NSString 上强制执行 Unicode 编码,但归根结底是 NSString 总是捕获和转义 \.
感谢任何提示和积分!
我没有找到解决此问题的任何方法,只能反过来更改终端程序的输出,使其不以这种方式进行编码。
抱歉可能是新手问题。
由于各种原因,我被一个看起来像这样的特殊字符串所困扰:
NSString *myString = @"A\314\212A\314\210O\314\210.jpg";
我可以用一些忍者的方式删除双 \\ 并强制 NSString 理解该字符串是 Uniencoded 并且应该像这样阅读
NSString *myString = @"A42A40O40.jpg"; // Displays ÅÄÖ as expected
我尝试了不同的策略试图替换所有斜杠 ("\"),但是只要我添加一个 ("\") NSString 就会添加另一个以转义第一个。我被困在这里...
是否可以防止 NSString 转义我的字符串?
更新
我知道这是一个特例。从读取用户驱动器上的文件的终端程序读取输出。通过 NSTask,我将输出捕获到 NSString 中以进行解析并将其拆分为数组。只要没有非 ascii 字符,它就可以很好地工作。 HFS+ 使用略有不同的 Unicode 编码非 ASCII 字符,称为 NFD。
当我捕获响应时,ÅÄÖ 已经像这样编码在 qoutes 中:
file.jpg
file2.jpg
"A42A40O40.jpg"
当我创建一个 NSString 并使用捕获的响应时,它第二次被 NSString 转义。
A\314\212A\314\210O\314\210.jpg
我知道这不是最佳选择,但现在我无法控制终端程序输出的内容。通常当使用此 NFD 编码创建 NSString 时,Objectiv-C 会为您处理 encoding/decoding 。但是因为我有一个包含混合和双重转义内容的字符串,所以我很难创建它并让 NSString 理解内容是用这种编码编码的。
基本上我想这样:
decodedString = [output stringByReplacingOccurrencesOfString:@"\\"
withString:@"\"];
但在幕后,NSString 总是为您转义 \ 和另一个 \,所以我想要一种创建 "raw" 字符串的方法,而不会受到 NSString 的干扰。
已经尝试了各种方法来尝试在 NSString 上强制执行 Unicode 编码,但归根结底是 NSString 总是捕获和转义 \.
感谢任何提示和积分!
我没有找到解决此问题的任何方法,只能反过来更改终端程序的输出,使其不以这种方式进行编码。