0

コードは次のとおりです。

    NSString * str = [[NSString alloc] initWithFormat:@"abcdefgh"];
    void * pbuffer = malloc(128);
    memset(pbuffer, 0, 128);
    NSUInteger nsu;
    NSRange range = NSMakeRange(0, 128);
    [str getBytes:pbuffer maxLength:128 usedLength:&nsu encoding:NSUnicodeStringEncoding options:0 range:range remainingRange:nil];

    NSString * str2 = [[NSString alloc] initWithBytes:pbuffer length:128 encoding:NSUnicodeStringEncoding];

次に、文字列 str と str2 の結果が異なることがわかります。バッファはまだ正しく、メモリは「61 00 62 00 ....」のようになっています。そして、str2 のメモリは「00 61 00 62 ....」のようになります。

私のテストコードの問題は何ですか?

ありがとう!

4

1 に答える 1

2

NSUTF8StringEncodingの代わりに使用NSUnicodeStringEncoding

于 2012-06-23T03:02:39.330 に答える