Java套接字服务器无法从objective-c客户端正确读取字符串,为什么?
我已经编写了一个java套接字服务器和一个objective-c套接字客户端,当客户端连接到服务器时,它将发送字符串“server\n”。服务器端无法正确读取,如下所示: ��Y�~�Ü{欧盟`�N��N�8.���������,��,�+�$�#� 双方都使用utf-8,如何使其工作 对象套接字客户端:Java套接字服务器无法从objective-c客户端正确读取字符串,为什么?,java,objective-c,sockets,Java,Objective C,Sockets,我已经编写了一个java套接字服务器和一个objective-c套接字客户端,当客户端连接到服务器时,它将发送字符串“server\n”。服务器端无法正确读取,如下所示: ��Y�~�Ü{欧盟`�N��N�8.���������,��,�+�$�#� 双方都使用utf-8,如何使其工作 对象套接字客户端: NSString *jsonStr = @"server\n"; const char * clientTextData = [jsonStr cStringUsingEncodin
NSString *jsonStr = @"server\n";
const char * clientTextData = [jsonStr
cStringUsingEncoding:NSUTF8StringEncoding];
NSLog(@"=========>%@==========>%s",jsonStr,clientTextData);
NSData* lengthData=[NSData dataWithBytes:clientTextData length:200];
[gcdSocket writeData:lengthData withTimeout:-1 tag:110];
Java服务器端:
public void run()
{
try {
InputStream is = sk.getInputStream(); //sk is socket object
br = new BufferedReader(new InputStreamReader(is));
String typeString = br.readLine();
Java默认使用utf-16。您是否确定Java端需要utf-8?按照以下方式创建您的对象-
新建BufferedReader(new InputStreamReader(是“UTF8”);
。让我知道这是否有帮助,如果没有帮助,那么让我知道输出如何,这取决于您需要找到一种明确使用“UTF8”的机制在您的objective c代码中也是如此。Java默认使用utf-16。您有多确定Java端需要utf-8?像这样创建您的对象-new BufferedReader(new InputStreamReader(is,“UTF8”));
。让我知道这是否有帮助,如果没有帮助,那么让我知道输出如何,这取决于您需要找到一种机制,以便在您的目标c代码中显式使用“UTF8”。