• 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开发编码转换方法的内容介绍完了,希望通过本文的学习能对你有所帮助!

  • 相关阅读:
    unity的canvas动静分离(转)
    xlua委托和事件
    Xlua的ni和C#的null
    记一次xlua热更问题(lua给c#加事件)
    java程序代写+收徒
    linux查看文件内容 检索关键字内容
    72:内网安全-域横向CS&MSF联动及应急响应初识
    71:内网安全-域横向网络&传输&应用层隧道技术
    70:内网安全-域横向内网漫游Socks代理隧道技术
    69:内网安全-域横向CobaltStrike&SPN&RDP
  • 原文地址:https://www.cnblogs.com/ligun123/p/2696976.html
Copyright © 2020-2023  润新知