Tag: utf 8

检查NSData是否包含ASCII或UTF8编码

我正在检索包含UTF8或ASCII编码文本的HTML。 对于最常见的使用,它是ASCII解码,可以正确显示文本: NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding]; 现在我有另一个UTF8编码的HTML页面,所以我必须使用: NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 加载网站时,我检索什么样的编码是随机的。 我的问题是,有没有办法来检查NSData什么样的解码是正确的使用? 所以我知道我需要使用哪种编码types。 日Thnx!

打印Cstring(UTF-8)时NSLog()vs printf()

我注意到,如果我尝试使用格式说明符“%s”打印包含UTF-8string表示forms的字节数组, printf()会正确,但是NSLog()会将其乱码(即每个字节按照原样打印,例如“¥”打印为2个字符:“¬•”)。 这很好奇,因为我总是认为NSLog()只是printf() ,加上: 第一个参数('格式')是一个Objective-Cstring,而不是Cstring(因此是“@”)。 时间戳和应用程序名称预先。 换行符自动添加到最后。 打印Objective-C对象的能力(使用格式“%@”)。 我的代码: NSString* string; // (…fill string with unicode string…) const char* stringBytes = [string cStringUsingEncoding:NSUTF8Encoding]; NSUInteger stringByteLength = [string lengthOfBytesUsingEncoding:NSUTF8Encoding]; stringByteLength += 1; // add room for '\0' terminator char* buffer = calloc(sizeof(char), stringByteLength); memcpy(buffer, stringBytes, stringByteLength); NSLog(@"Buffer after copy: %s", buffer); // (renders ascii, no matter […]

AVMetadataItem的编码

我有一个AVMetadataItem有CP1251(西里尔)编码的字段。 读取item.stringValue后,我得到垃圾 – 错误编码的string。 我已经尝试将该string转换为原始的UTF8,然后使用CP1251编码创build一个新的string – 没有运气,结果是零。 尝试采取item.dataValue – 没有骰子,它包含一个原始列表数据(从bplist …开始)。 任何想法都非常赞赏。 提前致谢。

用NSString解码UTF8

我是Objective-C的新手,并尝试使用苹果文档上的示例将畸形的UTF8编码的NSString转换为格式正确的UTF8编码的NSString。 NSString *theString = @"Lügen"; //should be "ü" NSString *asciiString = [[NSString alloc] initWithData:asciiData encoding:NSASCIIStringEncoding]; NSLog(@"Original: %@ (length %d)", theString, [theString length]); NSLog(@"Converted: %@ (length %d)", asciiString, [asciiString length]); 结果: Original: Lügen (length 6) Converted: LA1/4gen (length 8) 这里没有做任何事情: NSString* str = [NSString stringWithUTF8String: [theString cStringUsingEncoding:NSASCIIStringEncoding]]; 这在这里崩溃我的应用程序 NSString* str = [NSString stringWithUTF8String: [theString cStringUsingEncoding:NSUTF8StringEncoding]]; 任何人有任何想法我做错了什么?

如何将string转换为unicode(UTF-8)string在Swift中?

如何将string转换为unicode(UTF-8)string在Swift中? 在目标中,我可以这样写: NSString *str = [[NSString alloc] initWithUTF8String:[strToDecode cStringUsingEncoding:NSUTF8StringEncoding]]; 在Swift中如何做类似?

为什么CFStringEncodings在Swift中没有UTF8?

我想在Swift中创build百分比编码的string,所以我可以安全地发送文本作为GET请求。 我发现了一些Objective C代码,我试图将其转换为Swift。 我写了下面的Swift代码: CFURLCreateStringByAddingPercentEscapes(nil, CFStringRef(encodedString), nil, CFStringRef("/%&=?$#+-~@<>|\\*,.()[]{}^!"), kCFStringEncodingUTF8) 在Swift中没有kCFStringEncodingUTF8 …如果你右键点击CFStringEncodings源,你会发现里面有一百万个东西,但是没有UTF8。 我不明白。 如何在这种情况下使用UTF8string编码? 编辑:我发现了一种方法来编码一个string,但我仍然不明白发生了什么事kCFStringEncodingUTF8

JSON输出重音问题

我一直在寻找3小时左右,我知道有很多这样的问题已经被问到,但我还没有find任何解决scheme,我的问题,当我试图输出重音字符在我的数据库上的SELECT查询的结果。 $itemsList = array(); while($row = mysql_fetch_assoc($res)){ $itemsList[Items][] = ($row); } echo json_encode($itemsList); 这将输出: {"Items": [ {"user_name":"misterP", "comment":"\u00c3\u00a9t\u00c3\u00a9", "image_name":"403885300736874.jpg"}]} 但是我需要输出口音,像这样: {"Items": [ {"user_name":"misterP", "comment":"été", "image_name":"403885300736874.jpg"}]} 我的数据库和表有utf8_general_ci interclassement 我的数据库中插入的数据是utf8_encoded 我的PHP脚本是在Unicode(UTF-8) 我做了“mysql_set_charset('utf8');”在我的数据库上的SELECT之前 如果这可以帮助某人:在y数据库中,“été”这个词是:“été” 所以我现在真的不知道该怎么做,我真的被这个口音卡住了,我无法工作。 提前致谢 !

将stream(utf8)数据转换为string的安全方法是什么?

假设我是一个用objc / swift编写的服务器。 客户端发送了大量的数据,这实际上是一个很大的utf8编码的string。 作为服务器,我有我的NSInputStream触发事件,说它有数据读取。 我抓住数据,并build立一个string。 但是,如果我得到的下一个数据块落在utf8数据的一个不幸的位置呢? 就像一个组成的angular色。 看起来好像会混淆string,如果你试图追加一大块非兼容的utf8它。 什么是合适的方式来处理这个问题? 我以为我可以保留数据作为一个NSData,但是我没有办法知道什么时候数据已经完成接收(想想数据长度在头部的HTTP)。 感谢您的任何想法。

为什么我不能用UTF-8键盘使用secureTextEntry?

所有,我碰到这个问题的地方,有一个UITextField有secureTextEntry = YES,我不能得到任何UTF-8键盘(日文,阿拉伯文等)显示,只有非UTF-8的(英文,法文等)。 我在Google上,在这个网站上以及在Apple开发论坛上都做了很多search,看到其他人也遇到同样的问题,但是没有实现我自己的UITextField,似乎没有任何合理的解决scheme或答案,或预期的行为。 如果这是有意的行为,为什么呢? 是否有标准,白皮书,某些我可以查看的地方,然后指向我的产品经理并说我们无法支持UTF-8密码? 谢谢,

使用Swift的C API

我试图跟踪networking状态。 我经历了FXReachability的代码。 具体如下的方法。 – (void)setHost:(NSString *)host { if (host != _host) { if (_reachability) { SCNetworkReachabilityUnscheduleFromRunLoop(_reachability, CFRunLoopGetMain(), kCFRunLoopCommonModes); CFRelease(_reachability); } _host = [host copy]; _status = FXReachabilityStatusUnknown; _reachability = SCNetworkReachabilityCreateWithName(kCFAllocatorDefault, [_host UTF8String]); SCNetworkReachabilityContext context = { 0, ( __bridge void *)self, NULL, NULL, NULL }; SCNetworkReachabilitySetCallback(_reachability, ONEReachabilityCallback, &context); SCNetworkReachabilityScheduleWithRunLoop(_reachability, CFRunLoopGetMain(), kCFRunLoopCommonModes); } } 它所做的是不断检查到指定主机的连接。 我试图将此方法转换为Swift,并遇到一些问题。 […]