チャット コードを iOS から Android に移植する必要がありました。チャット メッセージをソケットに送信する前に、iOS コードはNSNonLossyASCIIStringEncoding
クラスを NSString::dataUsingEncoding のパラメーターとして使用します。
Androidでどのようにしますか?反対のデコードに関する同じ質問。
そうしないと、例えば相手の携帯で受信したメッセージの改行が消えてしまいます。
iOS のコード:
NSData *data1 = [myStringTosend dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *goodValue = [[[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding] autorelease];
そしてデコード:
NSData *data = [[NSData alloc] initWithData:[response dataUsingEncoding:NSASCIIStringEncoding]];
これまでのところ (正しくありません)、Android 側でのエンコード:
OutputStream os = socket.getOutputStream();
os.write(request.getBytes("UTF-8"));
os.flush();
そしてデコード:
while ((bytesRead = is.read(buffer, 0, BUFFER_SIZE)) >= 0) {
if (bytesRead > 0) response.append(new String(buffer, 0, bytesRead, "UTF-8"));
if (bytesRead < BUFFER_SIZE) break;
}