gpt4 book ai didi

ios - 带日文字符的 NSString

转载 作者:行者123 更新时间:2023-11-28 22:21:46 25 4
gpt4 key购买 nike

在我的应用程序中,我有 NSString 从网络获取字符串:

高瀬 - 虎柄の毘沙門天

现在我想将这个字符串复制到我的对象中的本地 NSString 所以我写道:

self.metaDataString = [NSString stringWithString:tempMetaDataString];

现在在 metaDataString 中我有:

é«ç¬ - èæã®æ¯æ²é天

是什么导致了这个问题?

我也试过这个:

self.metaDataString = [NSString stringWithUTF8String:[tempMetaDataString UTF8String]];

我如何获取 tempMetaDataString:

    NSMutableString *tempMetaDataString = [NSMutableString stringWithCapacity:0];
//This line i loop over the bytes array size
[tempMetaDataString appendFormat:@"%c", bytes[i]];

这是字节数组:

    UInt8 bytes[kAQBufSize];
length = CFReadStreamRead(stream, bytes, kAQBufSize);

最佳答案

此行不适用于多字节字符:

[tempMetaDataString appendFormat:@"%c", bytes[i]];

如果您有一个多字节字符,这会将其拆分为单独的 ASCII 字符(如您所见)。

从这段代码中不清楚 bytes 到底是什么。是固定长度的字符串,还是以NULL结尾的字符串?如果它是固定长度的,那么你想要(假设这是 UTF8):

self.metaDataString = [[NSString alloc] initWithBytes:bytes
length:kAQBufSize
encoding:NSUTF8StringEncoding];

如果这是一个以 NULL 结尾的 UTF8 字符串:

self.metaDataString = [NSString stringWithUTF8String:bytes];

如果一些其他编码(例如 NSJapaneseEUCStringEncodingNSShiftJISStringEncoding):

self.metaDataString = [NSString stringWithCString:bytes encoding:theEncoding];

关于ios - 带日文字符的 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20190105/

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