- - PR -
HttpClientでの機種依存文字のpost送信
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-04-14 18:34
現在CommonsのHttpClientを用いてhttp通信クライアントを作成しております。
リクエストで日本語を扱うために PostMethod post = new PostMethod(strConnectURL); post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=SJIS"); int status = client.executeMethod(post); とこのような感じで実装をおこなっているのですが、windows機種依存文字については SJISでURLエンコードされないようなのですが、解決策があれば教えていただきたいと思います。 --環境-- jdk1.4.02 httpclient2.0 windowsXP pro SP2 (クライアント) redhat8.0 (テストサーバー) よろしくお願いいたします。 |
|
投稿日時: 2005-04-15 16:15
つばさです。
charset=SJISだと、Windows機種依存文字はコンバートできないため 正しく扱えないと思います。 charset=Widnows-31Jを指定すれば、例えばNEC特殊文字のまるいち (Shift_JISの0x8740)は、name=%87%40のように問題なくURLエンコード できます。ただし、受け取り側(サーバ側)もWindows-31Jでデコード してあげないと正しく扱えません。 サーバが、Linuxですので、Windows-31Jはダメかもしれません。 そこで、charset=UTF-8を指定して、サーバ側でもUTF-8でデコードす するのがよいのではないかと思います。 (Linuxで扱える文字集合がくわしくないので推測ですが) 少しでもお役に立てれば、幸いです。 |
1