Androidクライアントがデータベースから取得した中国語が文字化けしている問題を解決する

1158 ワード

問題の説明
最近androidウィジェットを開発しています.その機能の一つは、クライアントがサーバ側のデータベースから情報を取得することですが、テストの過程で、いつも中国語が文字化されていません.
長いこと振り回されたが,やっと終わった.他の人に役に立つことを望んでいます.(採用した開発モデルandroid+servlet+mysql))
解決プロセス
クライアント
クライアントを疑い始め、データストリームを取得する際に符号化の変換を行わなかったため、文字化けしてしまったため、次のようなコードが追加されたが失敗した
1. BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "utf-8"));
2. URLDecoder.decode(sb.toString(), "UTF-8")

サーバ側
サービス側がデータベースから取得したデータをutf 8の符号化形式でクライアントに返すため、サーバ側に次のコードを追加したが、効果はなかった
 //      UTF-8
 resp.setCharacterEncoding("UTF-8");

データベース#データベース#
上の2つのステップを経て、基本的にデータベースの設定の問題であることを確定して、ネット上で各種の方法を検索して、その中で、下の第3の方法は私のこちらの環境で効果があります
1.       C:\Program Files\MySQL\MySQL Server 5.1\my.ini
2.     ,           
mysql> SET character_set_client = utf8 ; 
mysql> SET character_set_connection = utf8 ; 
mysql> SET character_set_database = utf8 ; 
mysql> SET character_set_results = utf8 ; 
mysql> SET character_set_server = utf8 ; 
3.   MySQLInstanceConfig.exe,             utf8