gpt4 book ai didi

cocoa - 如何转义 NSString 中的 unicode 字符?

转载 作者:行者123 更新时间:2023-12-03 16:08:41 25 4
gpt4 key购买 nike

当我将 NSString 存储在某个 NSDictionary 中并将该字典记录到控制台时,如下所示:

NSString *someString = @"Münster";  
NSDictionary *someDict = [ NSDictionary dictionaryWithObjectsAndKeys:
someString, @"thestring" ];
NSLog ( @"someDict: %@", [ someDict description ] );

控制台输出如下所示:

unicode_test[3621:903] someDict:
{
thestring = "M\U00fcnster";
}

字符串的 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;
}

关于cocoa - 如何转义 NSString 中的 unicode 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2555653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com