iOS 字符串 与 Unicode 互转

//字符串 转Unicode

  • (NSString *)utf8ToUnicode:(NSString *)string{

    NSUInteger length = [string length];
    NSMutableString *str = [NSMutableString stringWithCapacity:0];
    for (int i = 0;i < length; i++){
    NSMutableString *s = [NSMutableString stringWithCapacity:0];
    unichar _char = [string characterAtIndex:i];
    // 判断是否为英文和数字
    if (_char <= '9' && _char >='0'){
    [s appendFormat:@"%@",[string substringWithRange:NSMakeRange(i,1)]];
    }else if(_char >='a' && _char <= 'z'){
    [s appendFormat:@"%@",[string substringWithRange:NSMakeRange(i,1)]];
    }else if(_char >='A' && _char <= 'Z')
    {
    [s appendFormat:@"%@",[string substringWithRange:NSMakeRange(i,1)]];
    }else{
    // 中文和字符
    [s appendFormat:@"\u%x",[string characterAtIndex:i]];
    // 不足位数补0 否则解码不成功
    if(s.length == 4) {
    [s insertString:@"00" atIndex:2];
    } else if (s.length == 5) {
    [s insertString:@"0" atIndex:2];
    }
    }
    [str appendFormat:@"%@", s];
    }
    return str;

}

//Unicode 转字符串

  • (NSString *)replaceUnicode:(NSString *)unicodeStr
    {

    NSString *tempStr1 = [unicodeStr stringByReplacingOccurrencesOfString:@"\u"withString:@"\U"];
    NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@"""withString:@"\""];
    NSString *tempStr3 = [[@"""stringByAppendingString:tempStr2] stringByAppendingString:@"""];
    NSData tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];
    NSString
    returnStr = [NSPropertyListSerialization propertyListFromData:tempData
    mutabilityOption:NSPropertyListImmutable
    format:NULL
    errorDescription:NULL];
    return [returnStr stringByReplacingOccurrencesOfString:@"\r\n"withString:@"\n"];
    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容