我必须将一些聊天代码从 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;
}