0

我有一个unsigned char* array1with values >127 && <255。我想把它显示出来UITextView* MyTextView,然后从UITextView另一个读回unsigned char* array2。由于结果值array1应该等于 中的值array2

我知道 text 属性UITextViewNSString内部带有 UTF16 编码的对象。我的大于 127 的代码在 UTF16 编码中是两比特的。因此,如果我想显示我的 array1 并将其接收回 array2,我需要继续执行以下步骤:

  1. 将我的一字节字符转换为两字节,并用映射 UTF18 替换每个字符(结果我的 array1 将变大两倍)。
  2. 使用 UTF16 编码将我的 array1 转换为 NSString;
  3. 使用 UTF16 编码将我的 NSString 转换回 array2。
  4. 将每个两字节序列转换为 array2 的一个字节字符。

如何将我的非 ASCII 字符 >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];

由于array1和的结果值array2不同。

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

4

0 回答 0