2002-01-28 (Mon)

_ URLEncoding

java.net.URLEncoder.encode()は、デフォルトエンコーディングでバイト配列にしてしまいます。"あ"はUTF8で「3042」、Shift_JISで「82A0」ですが、URLEncoder.encode("あ")とすると、%82%A0となり、デフォルトエンコーディングされていることが分かります。

ソースを見ると、java.io.OutputStreamWriterを引数なしで使ってますので、文字がデフォルトエンコーディングされて、バイト配列になります。

URLDecoder.decode()も同様です。

2バイト文字は面倒ですね。

_ Cocoon2のインストール続き

Cocoon2のインストールをここに書きましたが、その続きです。

PJA Toolkitに付属するservlet.jarを展開するのですが、これはServlet 2.2仕様のものでバージョンが古く、Servlet2.3のものを動かそうとClassNotFoundやNoSuchMethodなどのエラーが出てしまいます。

そこで、Tomcat 4.0.1に付属するcommon/lib/servlet.jarを展開しました。PJAのものに上書き展開してとりあえずうまく動いてます。PJAのものを入れずに最初からTomcatのものを入れてもいいかもしれません。

ただ不安なのは、今度はPJAが動かなくなる恐れがあることです。まあ、今のところ順調です。

本日のツッコミ(全2件) [ツッコミを入れる]
_ ばろん (2002-01-30 (Wed) 17:31)

はじめまして。通りすがりのものです。<br>自分はJSP+Servletで業務アプリを開発しています。<br><br>JAVAでの2バイト文字はエンコード方式を考慮して製造しないと<br>えらいめにあいますよね。・・・現在NNとProxyサーバでの文字化け<br>で格闘中(T^T)

_ はんばあぐ (2002-01-31 (Thu) 12:39)

そうなんですよね。文字化けのない英語圏がうらやましいです。<br>でも、フランス語やドイツ語でも文字化けはあるので、文字化け対策を切望している技術者は多いと思うのですが、いまひとつですね。<br>Webの世界はUNICODEに統一してほしいですね。

[]