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 中的必需字符替换为编码变量的主要内容,如果未能解决你的问题,请参考以下文章