0

私は、添え字を持つ NSString の表現である SQLite DB を格納および取得する必要がある iOS アプリに取り組んでいます。コンパイル時に定数を使用して NSString を作成できます。

@"Br\u2082_CCl\u2084"

\u2082 は 2 添字、\u2084 は 4 添字です。SQLite dbに保存しているものは次のとおりです。

「Br\u2082_CCl\u2084」

しかし、どうすればよいかわかりません。それを NSString に再変換することです。データはデータベースから char * "Br\\u2082_CCl\\u2084" として返されます。余分なスラッシュを取り除いても、私の微弱な実験では何の違いもありませんでした。それを NSString に戻す方法が必要です - ありがとう!

4

2 に答える 2

0

NSString stringWithCStringクラス メソッドのいずれか、または対応するinitWithCStringインスタンス メソッドが必要です。

于 2011-01-12T00:59:00.277 に答える
0

私はこのように問題を解決しました - 明確にするためにエラーチェックを削除しました -

Unicode 文字列は、次のようにデータベースから stringEncoded パラメータに入ります。

「MgBr\u2082_CH\u2082Cl\u2082」

+(NSString *)decodeUnicodeBytes:(char *)stringEncoded {
  unsigned int    unicodeValue;
  char            *p, buff[5];
  NSMutableString *theString;
  NSString        *hexString;
  NSScanner       *pScanner;

  theString = [[[NSMutableString alloc] init] autorelease];
  p = stringEncoded;

  buff[4] = 0x00;
  while (*p != 0x00) {

    if (*p == '\\') {
      p++;
      if (*p == 'u') {
        memmove(buff, ++p, 4);

        hexString = [NSString stringWithUTF8String:buff];
        pScanner = [NSScanner scannerWithString: hexString];
        [pScanner scanHexInt: &unicodeValue];

        [theString appendFormat:@"%C", unicodeValue];
        p += 4;
        continue;
        }
      }

    [theString appendFormat:@"%c", *p];
    p++;
    }

  return [NSString stringWithString:theString];
}
于 2011-01-19T19:44:08.783 に答える