URLに日本語を含むインターネットショートカットをつくると内容が壊れる



  • 日本語が含まれているURLをドラッグしエクスプローラ上にドロップすると
    日本語部分が削除されたり、文字化けします

    削除される例(最後に日本語が含まれているもの)
    https://forum.vivaldi.net/category/76/不具合報告

    文字化けする例(途中に日本語が含まれているもの)
    https://forum.vivaldi.net/category/26/日本語-japanese

    環境は次のとおりです
    Vivaldi 1.16.1183.3 32-bit
    Windows 7 Pro SP1 x64



  • 早速のご確認ありがとうございました

    >アドレスバーから直接URLをドロップしてショートカット作ったんでしょうか?
    そのとおりです

    >設定のアドレスバーのところで「アドレスをエンコードしてコピー」にチェックは入っています。
    報告時点でチェックのあり・なしどちらも試しましたがドラッグアンドドロップしたショートカットの内容に関しては同じでした
    (アドレスバーからコピーしたURLをテキストエディタに貼り付けた場合の結果は正常に変化します)

    お問い合わせのありました
    他ブラウザでのURLドラッグアンドドロップの結果についてお知らせします。

    Google Chrome 66.0.3359.181(64bit)
    Firefox Quantum 60.0.1 (32bit)
    InternetExploer 11.0.9600.18524 (32bit)

    最初に例示した2つのURLで試しました。

    ChomeとFirefoxは日本語部分が%XXに変換されショートカットがつくられました。

    IEはたんにドロップするとピン留めサイトショートカットなるショートカットがつくられます。
    (インターネットショートカットの拡張子が*.urlなのに対し*.website)
    ピン留めサイトショートカットの中身を確認すると
    https...日本語-japaneseに関しては日本語部分が%XXになっていましたが、
    https...不具合報告に関しては日本語のまま(SHIFT JIS)記述されていました

    またSHIFTを押しながらドロップすると通常のインターネットショートカットがつくられますが
    この場合は両方とも日本語部分がパーセントエンコードではなくSHIFT JISでそのまま日本語記述されていました。



  • 作成したショートカットの名称自体ではなく、中身のURLが化けてるのですよね。
    Win10(x64)+Vivaldi 1.15.1147.42 (Stable x64)
    Win7Pro SP1(x64)+Vivaldi 1.16.1183.3 (Snapshot x64)
    で、ショートカットの名称自体は問題ありませんでしたが、中身の方は文字化けしてました。



  • ショートカットをダンプすると、不具合~の方は、 E4 B8 8D E5 85 B7 E5 90 88~とUTF8が生で入っているようで。.URLファイルの中ってS-JISとUTF-8のどっちが正しいのでしたっけ?

    URLとして使用するときはUTF-8だけど、Windowsのショートカット系はS-JISが標準だからUTF-8のコードを%でエンコードしないとダメよ、というところでしょうか。



  • @zyxwj said in URLに日本語を含むインターネットショートカットをつくると内容が壊れる:

    OSの文字コードの正しい仕様の判断ができないのですが、chromeとoperaで作られたショートカットをエディターで開くとUTF8で保存されていました。

    あれ?こちらだとChromeで作ったものはUTF-8のbyte列を%エンコードして、ASCIIの範囲内に収まるようにした状態で突っ込んでありました。


    Vivaldiで作った化けた.urfファイルの中に、CTRL+C/VでURLの文字列だけ張り付けた(「アドレスをエンコードしてコピー」は外しています。)ところファイルの中身はS-JISになってて正常に動作するみたいなんで、.urlファイル作るときはS-JISか、(Chromeとかのように)エンコードしてASCIIコード内に収めないとまずいようです。実際には日本語Windows以外も考慮して後者一択の気がしますけども。


  • Community Manager

    @hiyori_odayaka
    ご報告いただき、ありがとうございます!

    https://forum.vivaldi.net/category/26/日本語-japanese
    からショートカット作成し、プロパティでURLを確認したところ、
    "https://forum.vivaldi.net/category/26/譌・譛ャ隱・japanese"
    と表示されていました。文字化けですね。

    UTF-8でエンコードされた
    "/category/26/%E6%97%A5%E6%9C%AC%E8%AA%9E-japanese"
    と表示されているのが正しいはずですね。

    上記の点が今回ご報告頂いた件という認識でよろしいでしょうか?



  • @saziri
    ご確認と適切な補足ありがとうございました。
    おかげさまでうまく伝わりました。

    @Takaaki
    ご確認ありがとうございます。

    >上記の点が今回ご報告頂いた件という認識でよろしいでしょうか?
    はい結構です。

    もはや不要かもしれませんが
    説明が十分でなかった点について補足しておきます。

    ※全部一度に投稿しようとすると
    ERROR Post content was flaged as spam by kismet.com
    が出て、何がspam判定されてるかわからないので分割します。



  • 最初の投稿で
    URLが削除される例と文字化けする例は、ともに
    ショートカット(*.url)をエクスプローラ上で右クリックしプロパティ表示した際の
    「Webドキュメント」タブのURL欄の中身に関してです。
    テキストエディタで開いた場合はShift_JISで開けばどちらも文字化けしており、
    UTF-8で表示すれば最後まで正常に記述されています。

    2回目の投稿では他ブラウザでつくったショートカットについて触れましたが
    IEで作成したインターネットショートカット(*.url)の中身をテキストエディタで開いた場合
    [InternetShortcut]
    [InternetShortcut.A]
    [InternetShortcut.W]
    とURLの格納先セクションが3種あり、
    それぞれの箇所でのURL表記は
    ".A"と'.'以降のないものに関して日本語部分ははShift_JIS(CP932)で表記され
    ".W"に関しては日本語部分はUTF-16 Big-Endianでの表記をさらにBase64でエンコードし
    前後を'+'と'-'で挟むかたちになっていました。
    Base64化した場合の'/'はそのまま表記されていました。
    (このページのショートカットをつくると".W"のURL中のBase64化された部分に'/'が現れることによって確認)
    検索でみつけた説明(http:ののtatsu★life★coocan★jpのDevroomのIEfavorites★html ←Spam判定回避のため全角化 '★'は'.'、'の'は'/'です)
    をみると+は+-、-は-+に変換されると推測できますがこれについては未確認です。

    問題に気づいた当初はURLは%エンコーディングであるべきなのではと思っていましたが、
    IEでつくったショートカットを見るとMicrosoft的にはURL中の日本語表記の基本はShift_JISなのかもしれません。
    ユーザの立場としてはUTF-8が%エンコーディングされるかたちで問題ないかと思います。

    拡張子*.url(インターネットショートカット)および*.website(ピン留めサイトショートカット)は
    エクスプローラでは拡張子を表示するようにしていても確認できず、
    コマンドプロンプトのdirコマンドおよびテキストエディタ上で表示される実体ファイル名による確認です。


 

Looks like your connection to Vivaldi Forum was lost, please wait while we try to reconnect.