- PR -

ファイルのリンク時の文字化けについて

1
投稿者投稿内容
makoto
会議室デビュー日: 2003/05/23
投稿数: 4
投稿日時: 2006-05-18 11:17
お世話になります。初めての投稿なので足りない情報等があればご指摘ください。

特定ディレクトリのファイル一覧を表示しリンクを張りたいと思っております。

ファイル名とパスの一覧をリストに格納後、セッションに設定を行い、
JSP側で以下のような形でリンクを張ってみたのですが、

<%@page contentType="text/html; charset=Shift_JIS" %>

<logic:iterate id="fileLink" name="linkFileList" type="model.FileLink" >
<TR>
<bean:define id="filePath" name="fileLink" property="filePath" />
<TD><A href="<%= filePath %>" target="_blank"><bean:write name="fileLink" property="fileName" /></A></TD>
</TR>
</logic:iterate>

PDFファイルについては問題なく開かれますが、
テキストファイルだと改行コードが無視されているようで、
Excelファイルだと文字化けしており、中身がそのまま見えているようです。

ちなみにリンクするファイル名に日本語が含まれていると、
正しくリンク先として認識されないようです。

文字コードの問題だと思い、
インターネットで色々調べてみて問題にしている記事もありましたが、
イマイチ解決法が見えませんでした。

よろしくお願いいたします。
ゴングラッチェ
常連さん
会議室デビュー日: 2006/03/03
投稿数: 36
投稿日時: 2006-05-18 14:54
「中身がそのままみえる」ことについては、「Mime Type」というものを調べてみると幸せになれそうですよ。
「ファイル名に日本語が含まれているとリンク先として認識されない」ことについては、クライアントとサーバでのOSレベルでの文字コードを確認してみるとか「URLエンコーディング」というものを調べてみると幸せになれそうですよ。
makoto
会議室デビュー日: 2003/05/23
投稿数: 4
投稿日時: 2006-05-18 15:24
ご返信ありがとうございます。

挙げていただいた観点を元に、調査してみます。
makoto
会議室デビュー日: 2003/05/23
投稿数: 4
投稿日時: 2006-05-18 17:41
Mime Typeについては一応意識しており、問題ないように思ってたのですが、
調査している中で、以下のようなURLにたどりつきました。

http://hp.vector.co.jp/authors/VA000137/tomcat-missing-header-bug.html

一応これでExcelは開けるようになりました。

他も含め、引き続き調査します;;


[ メッセージ編集済み 編集者: makoto 編集日時 2006-05-18 17:51 ]
ゴングラッチェ
常連さん
会議室デビュー日: 2006/03/03
投稿数: 36
投稿日時: 2006-05-19 14:19
引用:
Mime Typeについては一応意識しており、問題ないように思ってたのですが、
調査している中で、以下のようなURLにたどりつきました。



ちょっとコメント。
Tomcatが悪いように見てとれる文面ではありますが、そうではありません。バグと書かれていますが、理屈からするとバグではなくTomcatが正しく動作するようになったといったほうが正しいように思います。それは、TomcatがWebサーバではなく、サーブレットコンテナだから。Mime Typeのお話は一般的にWebサーバが処理するものです。

Tomcat単体で稼動させていますか?Apache等と組み合わせてWebサーバ+サーブレットコンテナ構成で稼動させていますか?後者であれば、Mime Typeの設定はweb.xmlではなく、Webサーバの設定ファイルにする方がスマートと思います。
先のURLのHPにも備考に書いてありますねぇ。
makoto
会議室デビュー日: 2003/05/23
投稿数: 4
投稿日時: 2006-05-19 15:00
コメントありがとうございます。

ちょっと時間がなくて、本件に手を付けれてないのですが、

ご指摘の通りだと思います。
単体試験ということで便宜上、Tomcat単体で動かしてます。
以降の試験ではApacheと連動させます。設定は検討いたします。

あと、
>テキストファイルだと改行コードが無視されているようで、

って書いた部分は他の問題と同様、
見てたファイルの拡張子が.txtじゃなかったからでした。
失礼しました。
1

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