• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Android端末 文字付きURL サバ側で文字化)

Android端末 文字付きURL サバ側で文字化

このQ&Aのポイント
  • Androidアプリでサーバーに文字列を送信して検索結果を取得する際に、文字化けが発生している。
  • 端末内部では文字化けしていないが、サーバー側で送られたデータを見ると日本語が文字化けしている。
  • 文字化けの解決方法がわからず、アプリでAndroid端末から全角文字付きURLを送信したい。

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.1

>アプリでAndroid端末から全角文字付きURLを送信させたい。 無理です。URLの文字列は、全角文字は使えません。半角英数字の組み合わせで表現することを前提に設計されています。考え方が逆です。つまり全角文字を使えるようにするのでなく、全角文字を半角英数字に変換するのです。これはURLエンコード・デコードという機能を使います。これらはjava.netパッケージに「URLEncoder」「URLDecoder」というクラスとして用意されています。 まず、送信する際には、送信するテキストをURLエンコードでエンコードします。 String 変数 = URLEncoder.encode(送りたいテキスト , "UTF-8"); これで、エンコードしたテキストが得られるので、これをURLにつけて送信します。これを受け取る側では、受け取ったパラメータの値をデコードします。 String 変数 = URLDecoder.decode(str , "UTF-8"); これでデコードして元のテキストが得られます。それぞれ第2引数のエンコード名は適当に変更するなりしてください。 P.S. AndroidでいきなりJavaを覚えるとなるとかなり大変ですので、遠回りのようですが、ちゃんとしたJavaの入門書などでひと通り勉強してからAndroid開発に入ったほうが、逆に近道のように思いますよ。

nstammy507
質問者

お礼

いつもありがとうございます。 またアドバイスありがとうございます。 自己解決したのに消せなかったので、そのままにしてました。 writer = new PrintWriter(uc.getOutputStream()); writer.print("s_name=佐藤"); その直下で reader = new BufferedReader(new InputStreamReader(uc.getInputStream())); while( ( line = reader.readLine() ) != null ) { 略 で、思い通りになりました。 good-failureさんの方法もやってみます。 postと言うのですね。←でもきっと忘れます いつもやってるのに質問の時出てきませんでしたから。。 私の質問がいつも専門用語知らないので適当過ぎるので、good-failureさんの回答が私のやりたい事をそのまま説明してくれるので感謝しております。 『POSTする方法教えてください』と聞けないレベルです 泣 ごめんなさい。 psの件 やっぱりそうですよねぇ 泣 と言っても問題は、下手にプログラムを知っているので、どこが入門でどこから学べばいいのわからないのです 泣 PHPやMysqlもそうですが、高度な事をやりたいわけじゃないので、深く入らないで動いてる範囲で作ってる感じです。 プログラムで収入得ているわけじゃないので、目的があると覚えやすいかなと思ってアンドロイドでやってます。 また、しょうもない質問すると思いますが見捨てずに、時間ある時に回答してください。 いつも本当に感謝しております ありがとうございました。

関連するQ&A