NSString 中的必需字符替换为编码变量

Posted

技术标签:

【中文标题】NSString 中的必需字符替换为编码变量【英文标题】:Required character in NSString is replaced with encoded variable 【发布时间】:2015-04-15 14:04:25 【问题描述】:

我有一个包含值“\U2212”而不是来自 API 的“-”的 NSString。当我尝试使用 subString 发生方法将此字符串替换为所需的字符时,它显示错误。那么如何将包含“\U2212”的 NSString 替换为“-”。我尝试了以下代码。请帮我。我搜索了很多东西,但没有任何帮助。提前致谢。

输入:“(UTC\U221206:00)加拿大/中部”

期望的输出:“(UTC-06:00) Canada/Central”

代码:

NSString *timezoneDisplayValue = [timezone valueForKey:@"tomeZoneDisplayValue"];
timezoneDisplayValue = [timezoneDisplayValue stringByReplacingOccurrencesOfString:@"\U2212" withString:@"-"];

【问题讨论】:

\U2212 ? \\U2212? \U0002212? 您误解了 NSLog 语句的输出的可能性是什么? U2212 是一个 Unicode“减号”。是什么让您认为需要更换它? 我的 Api 就是这样返回的。所以我需要用 - 替换它 您确定字符串在替换之前是否包含“\U2212”。我会假设它在替换之前持有“\\U2212”。如果我错了,请纠正我。 【参考方案1】:

以下代码返回 YES 或 NO,无论您的字符串是否有任何编码...

[apiString canBeConvertedToEncoding:NSASCIIStringEncoding];

如果返回 NO,则使用正确的编码类型进行转换:

[apiString dataUsingEncoding:NSUTF16BigEndianStringEncoding];

【讨论】:

但是第二行适用于 NSData 对吧?如果我错了,请告诉我如何使用它。谢谢。

以上是关于NSString 中的必需字符替换为编码变量的主要内容,如果未能解决你的问题,请参考以下文章

如何用未知索引替换NSString中的特殊字符

Mybatis中#{}与${}的使用

nsstring替换范围内的字符串

来自nsstring的ios UTF8编码

音译/转置NSString中的字符

如何在NSString的模式之间替换字符串?