非ASCII文字を含むURLのエンコード Fork

    @@ -7,12 +7,14 @@ * @javascript_url */ ( ( s_url, d_url, base ) => { + const enc_ch = {'(':'%28',')':'%29',"'":'%27','@':'%40','.':'%2E'}; + s_url = prompt( 'URLを入力(省略時:現在のURL)', '' ); if ( s_url === null ) return; if ( ! s_url ) s_url = location.href; if ( ! /^https?:\/\//.test( s_url ) ) base = document.baseURI; - d_url = new URL( s_url, base ).href; + d_url = new URL( s_url, base ).href.replace( /([()'@]|\.$)/g, ( all, group ) => enc_ch[ group ] ); prompt( 'エンコード結果', d_url ); } )();
  • /*
     * @title 非ASCII文字を含むURLのエンコード
     * @description 非ASCII文字を含むURLのエンコードする(※IE非対応) 元ネタ:[非ASCII文字を含むURLのエンコード](https://oku.edu.mie-u.ac.jp/~okumura/javascript/encodeURI.html)
     * @include http://*
     * @include https://*
     * @license MIT License
     * @javascript_url
     */
    ( ( s_url, d_url, base ) => {
    const enc_ch = {'(':'%28',')':'%29',"'":'%27','@':'%40','.':'%2E'};
    
    s_url = prompt( 'URLを入力(省略時:現在のURL)', '' );
    if ( s_url === null ) return;
    if ( ! s_url ) s_url = location.href;
    
    if ( ! /^https?:\/\//.test( s_url ) ) base = document.baseURI;
    
    d_url = new URL( s_url, base ).href.replace( /([()'@]|\.$)/g, ( all, group ) => enc_ch[ group ] );
    prompt( 'エンコード結果', d_url );
    } )();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。