- PR -

HttpClientでの機種依存文字のpost送信

1
投稿者投稿内容
AK
会議室デビュー日: 2005/04/14
投稿数: 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/02/05
投稿数: 54
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)