近日准备研究android...所以在此之前复习一下j2se的好....
复习到socket时,,遇到个中文乱码问题,,,
我知道java是unicode的,C那神马的不是...通讯有点问题...
调试了几次,,,找到解决方法....UTF-16
为了防止忘记,还有日后能方便复习..于是,贴出代码
package com.memorycat.test.net;
import java.net.*;
import java.io.*;
public class TestSocketC {
TestSocketC() {
try {
Socket s = new Socket("127.0.0.1", 12345);
BufferedReader toWrite = new BufferedReader(new InputStreamReader(
System.in));
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
String str = "草泥马";
System.out.println("发出数据:" + str);
out.write(str.getBytes("UTF-16"));
out.flush();
byte[] b = new byte[1024];
in.read(b);
System.out.println("接收数据:"+new String(b, "UTF-16"));
out.close();
s.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new TestSocketC();
}
}