(from osdn.net/users/shogo215)
お世話になっています。
8.2.0 を使わせていただいています。
Windows の Web サーバをクロールしているのですが、パス名(フォルダやファイル)に「★」が含まれた
ファイルがヒットしたときの検索結果の URL (緑色で表示されるところ)が文字化けします。
例えば、検索結果の html のソースは「~/Contents/★MainContents/…」となって
欲しいところが、「~/Contents/笘?MainContents/…」となってしまいます。
(「?」は表示不能な文字コードでしたので「?」にしています。)
今のところ「◎」等の記号や通常の全角漢字の文字化けは見られませんが、「★」だけが化けていて
この文字化けを回避できないかと考えています。
そもそも「★」のような特殊な全角記号を使うのが問題なのかも知れませんが、もし対処法がありましたら
ご教示をお願いしたく存じます。
なお、この現象は以前のバージョンから続いています。
以上、よろしくお願いいたします。
discuss
2
(from osdn.net/users/shinsuke)
HTMLファイルのリンク(aタグ)に「★」が記述されているURLをクロールしている
状態でしょうか?
(from osdn.net/users/shogo215)
補足です。
検索して http://www.example.co.jp/Contents/★MainContents/FILE.html がヒットしたときに
表示される検索結果の画面の緑色のリンク表示が化けています。
検索結果のタイトルをクリックすると、上記 html が正しく表示されます。
クロール設定は、
URL: http://www.example.co.jp/Contents/★MainContents/
クロール対象とするURL: http://www.example.co.jp/Contents/★MainContents/.*
検索対象とするURL: ..[a-zA-Z]$
としています。
設定の URL に「~/★MainContents/~」と記述するとうまくクロールできなかったので
「~/%E2%98%85MainContents/~」と指定してクロールできるようにしています。
http://www.example.co.jp/Contents/★MainContents/ 配下には index.html ファイルを置かず、
ディレクトリの Index を取得して配下にある全ファイルをクロールしてもらえるように設定しています。
以上、よろしくお願いいたします。
discuss
4
(from osdn.net/users/shinsuke)
webapps/fess/WEB-INF/classes/s2robot_transformer.dicon
の
と
の次の行に
“UTF-8”
を加えてみてはいかがでしょうか?
discuss
5
(from osdn.net/users/shogo215)
ご教示ありがとうございます。
下記のとおり encoding を追加し、fess の再起動とインデックスを削除してからのクロールの再実行を
してみましたが現象は変わりませんでした。
webapps/fess/WEB-INF/classes/s2robot_transformer.dicon
=====
…
<component name="fessFileTransformer" class="jp.sf.fess.transformer.FessFileTransformer" instance="singleton">
<property name="encoding">"UTF-8"</property>
<property name="name">"fessFileTransformer"</property>
…
<component name="fessTikaTransformer" class="jp.sf.fess.transformer.FessTikaTransformer" instance="singleton">
<property name="encoding">"UTF-8"</property>
<property name="name">"fessTikaTransformer"</property>
…
=====
検索結果のソース表示は下記のとおりです。
=====
…
<h3 class="title">
<a href="http://www.example.co.jp/Contents/%E2%98%85MainContents/FILE.html" class="link">
…
<div class="site ellipsis">
<cite>www.example.co.jp/Contents/笘?MainContents/...</cite>
</div>
…
=====
ちなみに、同様の設定で「◎」を含むディレクトリもクロールしているのですが、
その配下がヒットした時は「◎」がそのまま表示されます。
検索結果のソースは下記のとおりです。
=====
…
<h3 class="title">
<a href="http://www.example.co.jp/Contents/%E2%97%8EIndex/FILE.xlsx" class="link">
…
<div class="site ellipsis">
<cite>www.example.co.jp/Contents/◎Index/FILE.xlsx</cite>
</div>
…
=====
何度も申し訳ありませんがよろしくお願いいたします。
discuss
6
(from osdn.net/users/shinsuke)
調査しました。
問題が発生する条件は、
-
URLのエンコーディング
-
そのURLのコンテンツのエンコーディング
が異なる場合に発生しています。
たとえば、URLがUTF-8でそのURLのHTMLがShift_JISの場合になります。
設定等では回避できないので、Fess 9で修正させていただきます。
discuss
7
(from osdn.net/users/shogo215)
shinsuke 様
調査ありがとうございました。
まさにそのとおりでした。
試しに Shift_JIS の HTML ファイルを UTF-8 に変換したものを置いて検索したところ、
UTF-8 のファイルの検索結果だけが文字化けせず正しく表示されました。
URL 表示にその中身のエンコーディングが影響するとは気付きませんでした。
Fess 9 を楽しみに待たせていただきます。
ご対応ありがとうございました。