安卓socket亂碼

2021-07-03 22:25:59 字數 920 閱讀 4642

方法一:

主要還是伺服器端和客戶端編碼匹配的問題

不管用何種編碼

只要兩端匹配

就ok不要假定預設編碼

乙個個去試

不如一行code

關鍵**

public static final string bm="gbk"; //全域性定義,以適應系統其他部分

inputstream is;

bufferedreader br;

bw = new bufferedwriter(new outputstreamwriter(os,bm));

br = new bufferedreader(new inputstreamreader(is,bm));

bw.write(msg

);msg= new string(b,bm);

outputstream os = socket.getoutputstream();

os.write(str.getbytes(bm));

整個工程中和編碼相關的部分如上所示

效果如下

方法二:

1.伺服器端輸出時:

printwriter out = new printwriter(new bufferedwriter(new outputstreamwriter(socket.getoutputstream(),"utf-8")),true);

2.客戶端接收時:

bufferedreader in = new bufferedreader(new inputstreamreader(client.getinputstream(),"utf-8"));

string read = in.readline();

安卓中文亂碼

在安卓程式中,會出現中文亂碼問題,經分析,原因為容器的固定大小會將乙個中文字元拆開形成亂碼。比如 錯誤 fileinputstream in context.openfileinput txt int len 0 byte buf new byte 1024 stringbuilder builde...

安卓Socket開發注意事項

1 在寫 的activity裡import進socket相關的包,這個很easy,如果你不知道要import什麼包,也可以先不指定,可 以直接寫例如 socket sokt new socket 這樣的話,由於沒有匯入socket的package,所以編譯器會自動提示 你需要import某個包,然後...

安卓Socket開發注意事項

1 在寫 的activity裡import進socket相關的包,這個很easy,如果你不知道要import什麼包,也可以先不指定,可 以直接寫例如 socket sokt new socket 這樣的話,由於沒有匯入socket的package,所以編譯器會自動提示 你需要import某個包,然後...