- - PR -
Tomcatで日本語ファイルへのリンク
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-12 12:45
Webサーバとして、WinXP ProでTomcat5.5を使用しています。
ハイパーリンク先に、日本語名のファイル(.pdf)を指定しますが、Tomcatではうまくレスポンスを返せないようです。 2バイト文字以外のファイルは、リンク先で表示できるのですが・・・。 何か良い方法(Tomcatの設定等)はありますでしょうか? ご教授いただければ幸いです。 | ||||||||||||||||
|
投稿日時: 2006-07-12 13:28
マルチバイト文字のリンクは、以下のクラスを使って、エンコードする必要があります。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/net/URLEncoder.html 標準がutf-8となっているので、JSPやHTMLも、utf-8にしてしまう方がいいと思います。 お節介に過ぎるかもしれません・・・(- -) ちなみに、IE6を使った、WordやExcelへのリンクの場合は、 エンコードすると、逆に受け付けてくれなくなったりします。orz [ メッセージ編集済み 編集者: Edosson 編集日時 2006-07-12 13:29 ] | ||||||||||||||||
|
投稿日時: 2006-07-13 09:07
アドバイスありがとうございます。
上記のURLエンコードの方法は理解できるのですが、そもそもブラウザからリクエストする時に、既にエンコードされているのかと思っております。ブラウザはIE限定です。 /data/テスト.pdf へのリンクに対して、Tomcat下記のステータスコードを返してきます。 HTTPステータス 404 - /data/%E3%83%86%E3%82%B9%E3%83%88.pdf ブラウザが2バイト文字に対して自動的にURLエンコードして、それに対してTomcatがそのようなファイルはないと返してくるのではないかというのが私の認識です。 この辺に関しての対処方法を探しております。 また、私自身の認識も正しいのかもご指摘願えたらと思っております。 改めて、整理すると <a href="/data/テスト.pdf">テスト.pdf</a> 以上のハイパーリンクに対して、テスト.pdfを表示したいということです。 TomcatをWebサーバとして使用しています。 よろしくお願いします。 [ メッセージ編集済み 編集者: NV 編集日時 2006-07-13 09:13 ] | ||||||||||||||||
|
投稿日時: 2006-07-13 10:08
URLエンコードがなんなのか、について調べてみましょう。 ここでは、エンコード元の文字コードがSHIFT-JISかEUC-JPどうか、でも、 エンコードの結果が違ってくる、とだけ書いておきます。
IE6&MS-Office限定だったら、これでなんの問題もないんですけどね。
NVさんの理解の通りであるとしたら、どうしてうまくいかないんでしょうか。 何が間違っているんでしょうね。
能書きはいいから、手を動かしてみましょう。 [ メッセージ編集済み 編集者: Edosson 編集日時 2006-07-13 10:11 ] | ||||||||||||||||
|
投稿日時: 2006-07-13 12:40
下記にて
<a href="/data/%E3%83%86%E3%82%B9%E3%83%88.pdf">テスト.pdf</a> エンコードしたURIであっても、HTTPステータス 404 - /data/%E3%83%86%E3%82%B9%E3%83%88.pdf で、うまくファイルを取得できません。 Edossonさんの仰るとおり、私では能書きだけでなく手を動かしても解決できないようです。 私自身の理解不足が原因だと思いますが、どなたか間違っている部分をご指摘願えたら幸いです。 | ||||||||||||||||
|
投稿日時: 2006-07-13 13:06
エンコードの失敗では、404にはならないんですね。
ここは、 <a href="data/テスト.pdf">テスト.pdf</a> ではありませんか? 先頭に'/'がつくと、ルートフォルダを参照に行くと思います。 それから、 <a href="data">data</a> をクリックして、フォルダ内のファイル一覧が表示されますか? まずはこれが表示されないといけません。 表示が確認できれば、表示されているリンクをクリックして、 URLエンコードが、実際にどのように行われているのか確認できます。 泥臭い上にスマートじゃないですけど。 | ||||||||||||||||
|
投稿日時: 2006-07-13 13:18
>> Edossonさん
ご回答ありがとうございます。 そういう意味(設定の問題)ですと、 <a href="/data/テスト.pdf">テスト.pdf</a> <a href="/data/%E3%83%86%E3%82%B9%E3%83%88.pdf">テスト.pdf</a> 上記は駄目ですが、下記の別ファイルは問題なく表示されます。 <a href="/data/test.pdf">テスト.pdf</a> 実際はアドレス直打ちですが・・・。 _________________ | ||||||||||||||||
|
投稿日時: 2006-07-13 13:39
なんでこれが設定の問題になるのか、ワケがわからないです。
dataフォルダの一覧を取得できるかどうか確認する、 そのリンクを叩いて、エンコーディングに関するブラウザの振る舞いを確認する、 ということは、やってらっしゃらないんですね。
そういうのって、動作確認といえるんですか? リンクがいくつかあるだけのHTMLを書くくらい、たいした手間でもありますまい。 |
1|2|3
次のページへ»