对不起,也许是一个新手问题。防止NSString转义内容
由于各种原因,我坚持一个奇特的字符串,看起来像这样:
NSString *myString = @"A\\314\\212A\\314\\210O\\314\\210.jpg";
我可以在一些忍者的方式去除双\\和强制的NSString明白字符串是Uniencoded和应读这样的
NSString *myString = @"A\314\212A\314\210O\314\210.jpg"; // Displays ÅÄÖ as expected
我曾尝试不同的策略试图替换所有斜杠(“\”),但只要我添加了一个(“\”)的NSString又增加了一个逃跑的第一个。我在这里卡住了...
是否有可能阻止NSString逃离我的字符串?
UPDATE
我知道这是一个特例。读取读取用户驱动器上的文件的终端程序的输出。通过一个NSTask,我将输出捕获到一个NSString中,用于解析并将它分解成一个数组。只要没有非ASCII字符,它就会很好用。 HFS +编码的非ASCII字符与称为NFD的略有不同的Unicode编码。
当我捕捉效应初探,在AAO已经被编码内qoutes这样的:
file.jpg
file2.jpg
"A\314\212A\314\210O\314\210.jpg"
当我创建的NSString,并与所捕获的效应初探时,它会通过的NSString第二次逃脱。
A\\314\\212A\\314\\210O\\314\\210.jpg
我知道这不是最佳的,但现在我无法控制终端程序输出什么。通常,当使用此NFD编码创建NSString时,Objectiv-C会为您处理编码/解码。但是由于我有一个带有混合和双重转义内容的字符串,我有一个很难创建它的方法,并让NSString理解内容是用这种编码编码的。
基本上,我想这样的:
decodedString = [output stringByReplacingOccurrencesOfString:@"\\\\"
withString:@"\\"];
但场面的NSString总是与另一个\转义\给你,让我想办法创建了“原始”的字符串NSString的干扰后面。
已经尝试过各种方法来尝试在NSString上强制执行Unicode编码,但它都归结为NSString始终捕获和转义\。
任何提示och points赞赏!
1.你需要扩大这个问题,目前还不清楚你在问什么。提供更多上下文。 2.什么是“NSString添加另一个逃避第一个”的意思,请解释。 – zaph
你总是可以使用unicode字符:'NSString * myString = @“ÅÄÖ”;'。它也可以用组合的UTF-8表示为:'myString = @“\ xc3 \ x85 \ xc3 \ x84 \ xc3 \ x96.jpg”;' – zaph
'myString'的值从何而来?它是硬编码吗?从互联网收到?还有别的吗?提供更多相关的代码。 – rmaddy