kar*_*ten 6 unicode cocoa escaping nsstring
当我在一些NSDictionary中存储NSString并将该字典记录到控制台时,如下所示:
NSString *someString = @"Münster";
NSDictionary *someDict = [ NSDictionary dictionaryWithObjectsAndKeys:
someString, @"thestring" ];
NSLog ( @"someDict: %@", [ someDict description ] );
Run Code Online (Sandbox Code Playgroud)
控制台输出如下所示:
unicode_test[3621:903] someDict:
{
thestring = "M\U00fcnster";
}
Run Code Online (Sandbox Code Playgroud)
字符串的unicode字符转义.是否有任何方法可以将NSString转换为此转义表示形式?
可以使用给定字符串的UniChar字符串表示形式的循环来解决该问题.在NSString上实现为扩展,它看起来像这样:
- (NSString *) escapedUnicode
{
NSMutableString *uniString = [ [ NSMutableString alloc ] init ];
UniChar *uniBuffer = (UniChar *) malloc ( sizeof(UniChar) * [ self length ] );
CFRange stringRange = CFRangeMake ( 0, [ self length ] );
CFStringGetCharacters ( (CFStringRef)self, stringRange, uniBuffer );
for ( int i = 0; i < [ self length ]; i++ ) {
if ( uniBuffer[i] > 0x7e )
[ uniString appendFormat: @"\\u%04x", uniBuffer[i] ];
else
[ uniString appendFormat: @"%c", uniBuffer[i] ];
}
free ( uniBuffer );
NSString *retString = [ NSString stringWithString: uniString ];
[ uniString release ];
return retString;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3970 次 |
| 最近记录: |