私はバイトとして渡しているいくつかの NSData を持っています
const void *bytes = [responseData bytes];
これらのバイトは元々UTF8でフォーマットされていましたが、エンコーディングをまったくいじらずにUTF8 NSStringに変換しようとしています。
バイトをcstringにコピーする場合、以前にこれを書きました。これは、バイトに1バイトではなく2バイトを取る英語以外の文字がない限り、通常は問題ありません。これは、文字列内の国際文字を cstring にコピーすると、混乱することを意味します。
したがって、バイトを UTF8 形式のオブジェクトに直接コピーする必要がある理由..できれば NSString.. 可能であれば。
これは、私が後で間違っていることがわかった変換を処理する方法でしたが、うまくいけば、私が達成しようとしていることの良い考えを与えるでしょう.
else if (typeWithLocalOrdering == METHOD_RESPONSE)
{
cstring = (char *) malloc(sizeWithLocalOrdering + 1);
strncpy(cstring, bytes, sizeWithLocalOrdering);
cstring[sizeWithLocalOrdering] = '\0';
NSString *resultString = [NSString stringWithCString:cstring encoding:NSUTF16StringEncoding];
methodResponseData =[resultString dataUsingEncoding:NSUTF16StringEncoding]; // methodResponseData is used later on in my parsing method
// Take care of the memory allocatoin, so that you can find the endoffile notification
free(cstring);
bytes += sizeWithLocalOrdering;
length -= sizeWithLocalOrdering;
}
どんな助けでも大歓迎です。