objective-c - 从 NSString 到字节然后再返回 NSString 时出现奇怪的字符

标签 objective-c cocoa character-encoding nsstring

NSString *message = @"testing";    
NSUInteger dataLength = [message lengthOfBytesUsingEncoding:NSUnicodeStringEncoding];
void *byteData = malloc( dataLength );
NSRange range = NSMakeRange(0, [message length]);
NSUInteger actualLength = 0;
NSRange remain;
BOOL result =   [message getBytes:byteData maxLength:dataLength usedLength:&actualLength encoding:NSUnicodeStringEncoding options:0 range:range remainingRange:&remain];
NSString *decodedString = [[NSString alloc] initWithBytes:byteData length:actualLength encoding:NSUnicodeStringEncoding];

我的问题是我希望对decodedString进行测试,但它看起来像中文字符。我认为这可能是空终止数据的问题,但看起来这不应该是问题。

最佳答案

你想要这样的东西吗?

    NSString *message = @"testing";    
    NSData *bytes = [message dataUsingEncoding:NSUTF8StringEncoding];
    NSString* messageDecoded = [[NSString alloc] initWithData:bytes encoding:NSUTF8StringEncoding];
    NSLog(@"decoded: %@", messageDecoded);

关于objective-c - 从 NSString 到字节然后再返回 NSString 时出现奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8021926/

相关文章:

cocoa - 更改 NSTextView 中的文本选择颜色

javascript - cocoa WebView : Cannot call Specific Javascript method using `callWebScriptMethod:`

javascript - 为什么我无法让该实体代码在浏览器中正确显示?

ios - 显示 searchResultsController 时出现 UISearchBar AutoLayout 错误

iphone - 尝试从 iphone 连接到 node.js 和 socket.io 0.7.2

objective-c - 如何访问一个已经存在的 View Controller

cocoa - 如何在没有图标的情况下显示文档窗口的标题?

java - 将 cp-1252 编码为 utf-8?

hibernate - JPA (Hibernate) 西里尔字母

ios - 如何向 UIButton 添加多行文本?