char转换为UTF16

时间:2013-09-18 19:15:31

标签: objective-c nsstring type-conversion utf-16 non-ascii-characters

我的unsigned char* array1的值为>127 && <255。 我想在UITextView* MyTextView中显示它,然后将其从UITextView读回到另一个unsigned char* array2。因此array1中的结果值应等于array2中的值。

我理解UITextView的text属性是NSString对象,其中包含UTF16编码。 而我的代码大于127则是UTF16编码的两个代码。因此,如果我想显示我的array1并接收读回array2,我需要继续执行步骤:

  1. 将我的单字节字符转换为双字节,并用映射UTF18替换每个字符(结果我的array1将变大两倍)。
  2. 使用UTF16编码将我的array1转换为NSString;
  3. 使用UTF16encoding将我的NSString转换回array2。
  4. 将每个双字节序列转换为array2的一个字节char。
  5. 如何将非ASCII字符&gt; 127转换为UTF16?使用映射?

    代码:

    UITextView* MyTextView;//assume this exists
    
    unsigned char array1[] = {130,150,250};
    
    unsigned char *array2 = malloc(4);
    
    MyTextView.text = [NSString stringWithCString:array1 encoding: NSUTF16StringEncoding];
    [MyTextView.text getCString:array2 length:MyTextView.text encoding:NSUTF8StringEncoding];
    

    结果array1array2的值不同。

    请帮助理解我的字符&gt; 127并将其转换为UTF16。

0 个答案:

没有答案
相关问题