• IOS开发中编码转换


    IOS开发编码转换方法是本文要介绍的内容,主要是来学习一下编码转换的内容,不多说,直接来看详细内容。我们可以使用以下方法进行编码转换。

    1. NSString* str2 = [NSString stringWithCString:str1 encoding:enc1]; 

    再调用NSString的cStringUsingEncoding:enc2实现从enc1到enc2的转换

    但是获取enc枚举值是个难题

    1、NSString.h中只定义了以下编码值

    1. enum {  
          NSASCIIStringEncoding = 1,                 
          NSNEXTSTEPStringEncoding = 2,  
          NSJapaneseEUCStringEncoding = 3,  
          NSUTF8StringEncoding = 4,  
          NSISOLatin1StringEncoding = 5,  
          NSSymbolStringEncoding = 6,  
          NSNonLossyASCIIStringEncoding = 7,  
          NSShiftJISStringEncoding = 8,           
          NSISOLatin2StringEncoding = 9,  
          NSUnicodeStringEncoding = 10,  
          NSWindowsCP1251StringEncoding = 11,     
          NSWindowsCP1252StringEncoding = 12,     
          NSWindowsCP1253StringEncoding = 13,     
          NSWindowsCP1254StringEncoding = 14,     
          NSWindowsCP1250StringEncoding = 15,     
          NSISO2022JPStringEncoding = 21,          
          NSMacOSRomanStringEncoding = 30,  
       
          NSUTF16StringEncoding = NSUnicodeStringEncoding,        
       
      #if MAC_OS_X_VERSION_10_4 <= MAC_OS_X_VERSION_MAX_ALLOWED || __IPHONE_2_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED  
          NSUTF16BigEndianStringEncoding = 0x90000100,           
          NSUTF16LittleEndianStringEncoding = 0x94000100,        
       
          NSUTF32StringEncoding = 0x8c000100,                     
          NSUTF32BigEndianStringEncoding = 0x98000100,           
          NSUTF32LittleEndianStringEncoding = 0x9c000100          
      #endif  
      }; 
      

        

    难道iphone中中文还不支持?不会吧?

    2、iphone中肯定是支持中文的,只是NSString中没有定义这个枚举值,我们可以通过两种方法获得这个枚举值,第一个方法是通过CFStringConvertEncodingToNSStringEncoding
    比如:

    1. NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);  
      NSString* str2 = [NSString stringWithCString:str1 encoding:enc]; 
      

        

    全部的kCFStringEncoding定义参考CFStringEncodingExt.h另外CFStringConvertIANACharSetNameToEncoding也很有用

    3. 另外一种方法是通过

    1. const NSStringEncoding *encodings = [NSString availableStringEncodings];  
      NSMutableString *str = [[NSMutableString alloc] init];  
      NSStringEncoding encoding;  
      while ((encoding = *encodings++) != 0)  
      {  
               [str appendFormat: @"%@ === %in", [NSString localizedNameOfStringEncoding:encoding], encoding];  
      } 
      

        

    然后打印str数组,你就可以知道每一个encoding的枚举值为多少了,比如中文的为-2147482063

    小结:深度解析IOS开发编码转换方法的内容介绍完了,希望通过本文的学习能对你有所帮助!

  • 相关阅读:
    Info.plist的秘密(raywenderlich笔记)
    我所理解的性能测试中负载测试与压力测试的区别
    seo优化
    localStorage,sessionStorage那些事儿
    浏览器cookie那些事儿
    JavaScript--Ajax请求
    javascript-理解原型、原型链
    React Native:从入门到原理
    知道这 20 个正则表达式,能让你少写 1,000 行代码
    程序猿进化必读:让App的运行速度与响应速度趋于一流(iOS)
  • 原文地址:https://www.cnblogs.com/ligun123/p/2696976.html
Copyright © 2020-2023  润新知