Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android socket 使用PrintWriter和BufferedReader發送和接收出現亂碼問題解決

Android socket 使用PrintWriter和BufferedReader發送和接收出現亂碼問題解決

編輯:關於Android編程

項目中用到了Android和C++的通信,選擇了用socket 發送字符的方式,一開始使用的代碼是:

					socket=new Socket();
					InetSocketAddress isa = new InetSocketAddress(IP_STR, port);     
					socket.connect(isa, 100);
					PrintWriter out=new PrintWriter(socket.getOutputStream(),true);
					BufferedReader recvBuf=new BufferedReader(new InputStreamReader(socket.getInputStream()));


使用這種方式無法設定字符集,無論是發送和接收如果跟服務器的字符集不同,都會出現亂碼,

最後將程序改為:

					socket=new Socket();
					InetSocketAddress isa = new InetSocketAddress(IP_STR, port);     
					socket.connect(isa, 100);
					PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"gb2312")),true);
					BufferedReader recvBuf=new BufferedReader(new InputStreamReader(socket.getInputStream(),"gb2312"));



我的服務器設定的字符集是gb2312。大家可以根據自己的需要設定字符集,原則是自己發送和對方接收的字符集設定要一致,自己的接收和對方的發送字符集一致。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved