2 返信 最新の回答 日時: Jun 22, 2003 1:30 PM ユーザー:(bookish)

    リンク先にページ内リンクを指定してあると飛べなくなる

    Level 1
       Acrobat Reader 6.0にヴァージョン・アップしたら、困ったことが。
       PDFファイルにWWWへのリンクを埋め込んでウェブにアップロードしてあります。
       そのリンクで“〜.html#note14”みたいに「#」でページ内アンカーをリンク先に指定してあると、6.0では“〜.html%23note14”と文字化けして、404 Not Found になります。version 5.1まではこんなことはなかったのですが。

       但しこの不具合は、Webブラウザで.pdfファイルを開いた時だけ起ります。.pdfファイルをローカルに保存してAcrobat Readerで開いてからリンクのボックスをクリックすると、ちゃんとWebブラウザでページ内アンカーの位置へ移動します。何かプラグインと関係ありますかね?

       今後ページ内アンカーをリンク先として埋め込みたい時、どうすればいのですか。
       対処法があったらご教示下さい。

       環境はWindows98SE、ウェブ・ブラウザはIE6とNetscape7で試しました。
        • 1. Re: リンク先にページ内リンクを指定してあると飛べなくなる
          以下はあくまで推測です。

          ## 6.0では“〜.html%23note14”と文字化けして
          URLで見かける「%」はURLで使えない文字をエスケープしているものです。英数文字でもURLとして使えない文字がありますし、日本語もそうです。検索エンジンの検索結果でURLをみると やたらとこのパーセント記号が出てくるのも、検索キーワード等がエスケープされているからです。

          エスケープは「%HH」(HHは16進数の文字コード)で行うとされています。
          そこでエラーで出てきた「%23」ですが、これは「#」の文字コード16進数「23」と一致します。
          おそらく、ブラウザ内で「html#note14」の部分をクリックしたときに、ブラウザ(あるいはサーバー?)が「#」をURLに使えない文字と判定し、わざわざ親切にも「%23」にエスケ ープしてしまったのでしょう。

          PC上のPDF文書で問題がないのは、「#」がURL上に現れないのでエスケープする必要がないからと思われます。

          以上のように考えると、エスケープされる文字を「エスケープするな!」という意味合いの記号があればいいことになります。
          「#」の前に「¥(円記号)」を置いてみると、どうなりますか? もしこれでうまくいっても、これだとローカルPCでエラーになる可能性があります。
          あるいはアンカーを含むURLすべてを引用符で括ってやるとどうなりますか?

          以前と現象が変わったのは、Adobe Readerの仕様が変わったのかもしれませんね。この辺りは要調査です。

          参考にしたサイト
          ---------------------------
          ・URLの詳細
          http://tohoho.wakusei.ne.jp/html/attr/url.htm

          関連しそうなサポート情報
          ---------------------------
          文書番号 : 221883
          http://support.adobe.co.jp/faq/faq/qadoc.sv?221883+002
          Acrobat 5.0 (Mac/Win):スペースを含んだ PDF Web リンクをクリックすると Web ブラウザでエラーが発生する
          • 2. Re: リンク先にページ内リンクを指定してあると飛べなくなる
            Level 1
             ご示教感謝。でも事態は好転しません。

            >「#」の前に「¥(円記号)」を置いてみると、どうなりますか?
            >あるいはアンカーを含むURLすべてを引用符で括ってやるとどうなりますか?

             どちらも試しましたが、やはり%23になります。しかも後者は“http://”が二重になるおまけつき。
             また、仮にうまくいったところで、PDF作成者にこんな既存ファイルの修正を要求する如きヴァージョン・アップは後方互換性無視で問題がありますね。

            >Adobe Readerの仕様が変わったのかもしれませんね。

             本来エスケープすべきでない文字までわざわざエスケープして不具合を生ずるのは、修正すべきバグではないかと存じます。
             サイトにはPDF文書はAdobe Reader 5.1以前で閲覧してくれと注意書きしておくことにします。いまのところまだversion6.0を使用する人は少ないからいいものの、このままでは困ります。Adobeに修正要求を出すに はどうしたらよいですか。