Skip to content

Instantly share code, notes, and snippets.

@nathanallen
Last active August 4, 2016 16:39
Show Gist options
  • Select an option

  • Save nathanallen/c0bad7cecc8f7dbf97a08a797bcfb5ff to your computer and use it in GitHub Desktop.

Select an option

Save nathanallen/c0bad7cecc8f7dbf97a08a797bcfb5ff to your computer and use it in GitHub Desktop.

Revisions

  1. nathanallen revised this gist Aug 4, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion javascript-character-encodings.js
    Original file line number Diff line number Diff line change
    @@ -47,7 +47,7 @@ function generateEncodings(n){
    char: char,
    uri_encoded: encodeURI(char),
    html_escaped: escape(char)
    // , html_encoded: "&#" + n + ";"
    // , html_encoded: "&#" + n + ";" // ?
    });
    }
    return out;
  2. nathanallen revised this gist Aug 4, 2016. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions javascript-character-encodings.js
    Original file line number Diff line number Diff line change
    @@ -45,8 +45,9 @@ function generateEncodings(n){
    out.push({
    charCode: n,
    char: char,
    uri_encoding: encodeURI(char),
    html_encoding: escape(char)
    uri_encoded: encodeURI(char),
    html_escaped: escape(char)
    // , html_encoded: "&#" + n + ";"
    });
    }
    return out;
  3. nathanallen revised this gist Aug 4, 2016. 1 changed file with 4 additions and 3 deletions.
    7 changes: 4 additions & 3 deletions javascript-character-encodings.js
    Original file line number Diff line number Diff line change
    @@ -3,7 +3,8 @@

    /*
    * HTML Escape Utility Function
    * Adapted from underscore libraries _.escape method.
    * Adapted from underscore library's _.escape method.
    * source: http://underscorejs.org/#escape
    */

    var escape = (function() {
    @@ -48,14 +49,14 @@ function generateEncodings(n){
    html_encoding: escape(char)
    });
    }
    return out
    return out;
    }

    /*
    * Driver Code
    */

    var result = generateEncodings(127) // first 127 characters
    var result = generateEncodings(127); // first 127 characters

    // console.table && console.table(result); // tabular format (Chrome Browser)
    console.log(JSON.stringify(result, true, 4)); // JSON format
  4. nathanallen revised this gist Aug 4, 2016. 1 changed file with 0 additions and 764 deletions.
    764 changes: 0 additions & 764 deletions javascript-character-encodings-output.json
    Original file line number Diff line number Diff line change
    @@ -1,764 +0,0 @@
    [
    {
    "charCode": 126,
    "char": "~",
    "uri_encoding": "~",
    "html_encoding": "~"
    },
    {
    "charCode": 125,
    "char": "}",
    "uri_encoding": "%7D",
    "html_encoding": "}"
    },
    {
    "charCode": 124,
    "char": "|",
    "uri_encoding": "%7C",
    "html_encoding": "|"
    },
    {
    "charCode": 123,
    "char": "{",
    "uri_encoding": "%7B",
    "html_encoding": "{"
    },
    {
    "charCode": 122,
    "char": "z",
    "uri_encoding": "z",
    "html_encoding": "z"
    },
    {
    "charCode": 121,
    "char": "y",
    "uri_encoding": "y",
    "html_encoding": "y"
    },
    {
    "charCode": 120,
    "char": "x",
    "uri_encoding": "x",
    "html_encoding": "x"
    },
    {
    "charCode": 119,
    "char": "w",
    "uri_encoding": "w",
    "html_encoding": "w"
    },
    {
    "charCode": 118,
    "char": "v",
    "uri_encoding": "v",
    "html_encoding": "v"
    },
    {
    "charCode": 117,
    "char": "u",
    "uri_encoding": "u",
    "html_encoding": "u"
    },
    {
    "charCode": 116,
    "char": "t",
    "uri_encoding": "t",
    "html_encoding": "t"
    },
    {
    "charCode": 115,
    "char": "s",
    "uri_encoding": "s",
    "html_encoding": "s"
    },
    {
    "charCode": 114,
    "char": "r",
    "uri_encoding": "r",
    "html_encoding": "r"
    },
    {
    "charCode": 113,
    "char": "q",
    "uri_encoding": "q",
    "html_encoding": "q"
    },
    {
    "charCode": 112,
    "char": "p",
    "uri_encoding": "p",
    "html_encoding": "p"
    },
    {
    "charCode": 111,
    "char": "o",
    "uri_encoding": "o",
    "html_encoding": "o"
    },
    {
    "charCode": 110,
    "char": "n",
    "uri_encoding": "n",
    "html_encoding": "n"
    },
    {
    "charCode": 109,
    "char": "m",
    "uri_encoding": "m",
    "html_encoding": "m"
    },
    {
    "charCode": 108,
    "char": "l",
    "uri_encoding": "l",
    "html_encoding": "l"
    },
    {
    "charCode": 107,
    "char": "k",
    "uri_encoding": "k",
    "html_encoding": "k"
    },
    {
    "charCode": 106,
    "char": "j",
    "uri_encoding": "j",
    "html_encoding": "j"
    },
    {
    "charCode": 105,
    "char": "i",
    "uri_encoding": "i",
    "html_encoding": "i"
    },
    {
    "charCode": 104,
    "char": "h",
    "uri_encoding": "h",
    "html_encoding": "h"
    },
    {
    "charCode": 103,
    "char": "g",
    "uri_encoding": "g",
    "html_encoding": "g"
    },
    {
    "charCode": 102,
    "char": "f",
    "uri_encoding": "f",
    "html_encoding": "f"
    },
    {
    "charCode": 101,
    "char": "e",
    "uri_encoding": "e",
    "html_encoding": "e"
    },
    {
    "charCode": 100,
    "char": "d",
    "uri_encoding": "d",
    "html_encoding": "d"
    },
    {
    "charCode": 99,
    "char": "c",
    "uri_encoding": "c",
    "html_encoding": "c"
    },
    {
    "charCode": 98,
    "char": "b",
    "uri_encoding": "b",
    "html_encoding": "b"
    },
    {
    "charCode": 97,
    "char": "a",
    "uri_encoding": "a",
    "html_encoding": "a"
    },
    {
    "charCode": 96,
    "char": "`",
    "uri_encoding": "%60",
    "html_encoding": "`"
    },
    {
    "charCode": 95,
    "char": "_",
    "uri_encoding": "_",
    "html_encoding": "_"
    },
    {
    "charCode": 94,
    "char": "^",
    "uri_encoding": "%5E",
    "html_encoding": "^"
    },
    {
    "charCode": 93,
    "char": "]",
    "uri_encoding": "%5D",
    "html_encoding": "]"
    },
    {
    "charCode": 92,
    "char": "\\",
    "uri_encoding": "%5C",
    "html_encoding": "\\"
    },
    {
    "charCode": 91,
    "char": "[",
    "uri_encoding": "%5B",
    "html_encoding": "["
    },
    {
    "charCode": 90,
    "char": "Z",
    "uri_encoding": "Z",
    "html_encoding": "Z"
    },
    {
    "charCode": 89,
    "char": "Y",
    "uri_encoding": "Y",
    "html_encoding": "Y"
    },
    {
    "charCode": 88,
    "char": "X",
    "uri_encoding": "X",
    "html_encoding": "X"
    },
    {
    "charCode": 87,
    "char": "W",
    "uri_encoding": "W",
    "html_encoding": "W"
    },
    {
    "charCode": 86,
    "char": "V",
    "uri_encoding": "V",
    "html_encoding": "V"
    },
    {
    "charCode": 85,
    "char": "U",
    "uri_encoding": "U",
    "html_encoding": "U"
    },
    {
    "charCode": 84,
    "char": "T",
    "uri_encoding": "T",
    "html_encoding": "T"
    },
    {
    "charCode": 83,
    "char": "S",
    "uri_encoding": "S",
    "html_encoding": "S"
    },
    {
    "charCode": 82,
    "char": "R",
    "uri_encoding": "R",
    "html_encoding": "R"
    },
    {
    "charCode": 81,
    "char": "Q",
    "uri_encoding": "Q",
    "html_encoding": "Q"
    },
    {
    "charCode": 80,
    "char": "P",
    "uri_encoding": "P",
    "html_encoding": "P"
    },
    {
    "charCode": 79,
    "char": "O",
    "uri_encoding": "O",
    "html_encoding": "O"
    },
    {
    "charCode": 78,
    "char": "N",
    "uri_encoding": "N",
    "html_encoding": "N"
    },
    {
    "charCode": 77,
    "char": "M",
    "uri_encoding": "M",
    "html_encoding": "M"
    },
    {
    "charCode": 76,
    "char": "L",
    "uri_encoding": "L",
    "html_encoding": "L"
    },
    {
    "charCode": 75,
    "char": "K",
    "uri_encoding": "K",
    "html_encoding": "K"
    },
    {
    "charCode": 74,
    "char": "J",
    "uri_encoding": "J",
    "html_encoding": "J"
    },
    {
    "charCode": 73,
    "char": "I",
    "uri_encoding": "I",
    "html_encoding": "I"
    },
    {
    "charCode": 72,
    "char": "H",
    "uri_encoding": "H",
    "html_encoding": "H"
    },
    {
    "charCode": 71,
    "char": "G",
    "uri_encoding": "G",
    "html_encoding": "G"
    },
    {
    "charCode": 70,
    "char": "F",
    "uri_encoding": "F",
    "html_encoding": "F"
    },
    {
    "charCode": 69,
    "char": "E",
    "uri_encoding": "E",
    "html_encoding": "E"
    },
    {
    "charCode": 68,
    "char": "D",
    "uri_encoding": "D",
    "html_encoding": "D"
    },
    {
    "charCode": 67,
    "char": "C",
    "uri_encoding": "C",
    "html_encoding": "C"
    },
    {
    "charCode": 66,
    "char": "B",
    "uri_encoding": "B",
    "html_encoding": "B"
    },
    {
    "charCode": 65,
    "char": "A",
    "uri_encoding": "A",
    "html_encoding": "A"
    },
    {
    "charCode": 64,
    "char": "@",
    "uri_encoding": "@",
    "html_encoding": "@"
    },
    {
    "charCode": 63,
    "char": "?",
    "uri_encoding": "?",
    "html_encoding": "?"
    },
    {
    "charCode": 62,
    "char": ">",
    "uri_encoding": "%3E",
    "html_encoding": ">"
    },
    {
    "charCode": 61,
    "char": "=",
    "uri_encoding": "=",
    "html_encoding": "="
    },
    {
    "charCode": 60,
    "char": "<",
    "uri_encoding": "%3C",
    "html_encoding": "&lt;"
    },
    {
    "charCode": 59,
    "char": ";",
    "uri_encoding": ";",
    "html_encoding": ";"
    },
    {
    "charCode": 58,
    "char": ":",
    "uri_encoding": ":",
    "html_encoding": ":"
    },
    {
    "charCode": 57,
    "char": "9",
    "uri_encoding": "9",
    "html_encoding": "9"
    },
    {
    "charCode": 56,
    "char": "8",
    "uri_encoding": "8",
    "html_encoding": "8"
    },
    {
    "charCode": 55,
    "char": "7",
    "uri_encoding": "7",
    "html_encoding": "7"
    },
    {
    "charCode": 54,
    "char": "6",
    "uri_encoding": "6",
    "html_encoding": "6"
    },
    {
    "charCode": 53,
    "char": "5",
    "uri_encoding": "5",
    "html_encoding": "5"
    },
    {
    "charCode": 52,
    "char": "4",
    "uri_encoding": "4",
    "html_encoding": "4"
    },
    {
    "charCode": 51,
    "char": "3",
    "uri_encoding": "3",
    "html_encoding": "3"
    },
    {
    "charCode": 50,
    "char": "2",
    "uri_encoding": "2",
    "html_encoding": "2"
    },
    {
    "charCode": 49,
    "char": "1",
    "uri_encoding": "1",
    "html_encoding": "1"
    },
    {
    "charCode": 48,
    "char": "0",
    "uri_encoding": "0",
    "html_encoding": "0"
    },
    {
    "charCode": 47,
    "char": "/",
    "uri_encoding": "/",
    "html_encoding": "/"
    },
    {
    "charCode": 46,
    "char": ".",
    "uri_encoding": ".",
    "html_encoding": "."
    },
    {
    "charCode": 45,
    "char": "-",
    "uri_encoding": "-",
    "html_encoding": "-"
    },
    {
    "charCode": 44,
    "char": ",",
    "uri_encoding": ",",
    "html_encoding": ","
    },
    {
    "charCode": 43,
    "char": "+",
    "uri_encoding": "+",
    "html_encoding": "+"
    },
    {
    "charCode": 42,
    "char": "*",
    "uri_encoding": "*",
    "html_encoding": "*"
    },
    {
    "charCode": 41,
    "char": ")",
    "uri_encoding": ")",
    "html_encoding": ")"
    },
    {
    "charCode": 40,
    "char": "(",
    "uri_encoding": "(",
    "html_encoding": "("
    },
    {
    "charCode": 39,
    "char": "'",
    "uri_encoding": "'",
    "html_encoding": "&#x27;"
    },
    {
    "charCode": 38,
    "char": "&",
    "uri_encoding": "&",
    "html_encoding": "&amp;"
    },
    {
    "charCode": 37,
    "char": "%",
    "uri_encoding": "%25",
    "html_encoding": "%"
    },
    {
    "charCode": 36,
    "char": "$",
    "uri_encoding": "$",
    "html_encoding": "$"
    },
    {
    "charCode": 35,
    "char": "#",
    "uri_encoding": "#",
    "html_encoding": "#"
    },
    {
    "charCode": 34,
    "char": "\"",
    "uri_encoding": "%22",
    "html_encoding": "&quot;"
    },
    {
    "charCode": 33,
    "char": "!",
    "uri_encoding": "!",
    "html_encoding": "!"
    },
    {
    "charCode": 32,
    "char": " ",
    "uri_encoding": "%20",
    "html_encoding": " "
    },
    {
    "charCode": 31,
    "char": "\u001f",
    "uri_encoding": "%1F",
    "html_encoding": "\u001f"
    },
    {
    "charCode": 30,
    "char": "\u001e",
    "uri_encoding": "%1E",
    "html_encoding": "\u001e"
    },
    {
    "charCode": 29,
    "char": "\u001d",
    "uri_encoding": "%1D",
    "html_encoding": "\u001d"
    },
    {
    "charCode": 28,
    "char": "\u001c",
    "uri_encoding": "%1C",
    "html_encoding": "\u001c"
    },
    {
    "charCode": 27,
    "char": "\u001b",
    "uri_encoding": "%1B",
    "html_encoding": "\u001b"
    },
    {
    "charCode": 26,
    "char": "\u001a",
    "uri_encoding": "%1A",
    "html_encoding": "\u001a"
    },
    {
    "charCode": 25,
    "char": "\u0019",
    "uri_encoding": "%19",
    "html_encoding": "\u0019"
    },
    {
    "charCode": 24,
    "char": "\u0018",
    "uri_encoding": "%18",
    "html_encoding": "\u0018"
    },
    {
    "charCode": 23,
    "char": "\u0017",
    "uri_encoding": "%17",
    "html_encoding": "\u0017"
    },
    {
    "charCode": 22,
    "char": "\u0016",
    "uri_encoding": "%16",
    "html_encoding": "\u0016"
    },
    {
    "charCode": 21,
    "char": "\u0015",
    "uri_encoding": "%15",
    "html_encoding": "\u0015"
    },
    {
    "charCode": 20,
    "char": "\u0014",
    "uri_encoding": "%14",
    "html_encoding": "\u0014"
    },
    {
    "charCode": 19,
    "char": "\u0013",
    "uri_encoding": "%13",
    "html_encoding": "\u0013"
    },
    {
    "charCode": 18,
    "char": "\u0012",
    "uri_encoding": "%12",
    "html_encoding": "\u0012"
    },
    {
    "charCode": 17,
    "char": "\u0011",
    "uri_encoding": "%11",
    "html_encoding": "\u0011"
    },
    {
    "charCode": 16,
    "char": "\u0010",
    "uri_encoding": "%10",
    "html_encoding": "\u0010"
    },
    {
    "charCode": 15,
    "char": "\u000f",
    "uri_encoding": "%0F",
    "html_encoding": "\u000f"
    },
    {
    "charCode": 14,
    "char": "\u000e",
    "uri_encoding": "%0E",
    "html_encoding": "\u000e"
    },
    {
    "charCode": 13,
    "char": "\r",
    "uri_encoding": "%0D",
    "html_encoding": "\r"
    },
    {
    "charCode": 12,
    "char": "\f",
    "uri_encoding": "%0C",
    "html_encoding": "\f"
    },
    {
    "charCode": 11,
    "char": "\u000b",
    "uri_encoding": "%0B",
    "html_encoding": "\u000b"
    },
    {
    "charCode": 10,
    "char": "\n",
    "uri_encoding": "%0A",
    "html_encoding": "\n"
    },
    {
    "charCode": 9,
    "char": "\t",
    "uri_encoding": "%09",
    "html_encoding": "\t"
    },
    {
    "charCode": 8,
    "char": "\b",
    "uri_encoding": "%08",
    "html_encoding": "\b"
    },
    {
    "charCode": 7,
    "char": "\u0007",
    "uri_encoding": "%07",
    "html_encoding": "\u0007"
    },
    {
    "charCode": 6,
    "char": "\u0006",
    "uri_encoding": "%06",
    "html_encoding": "\u0006"
    },
    {
    "charCode": 5,
    "char": "\u0005",
    "uri_encoding": "%05",
    "html_encoding": "\u0005"
    },
    {
    "charCode": 4,
    "char": "\u0004",
    "uri_encoding": "%04",
    "html_encoding": "\u0004"
    },
    {
    "charCode": 3,
    "char": "\u0003",
    "uri_encoding": "%03",
    "html_encoding": "\u0003"
    },
    {
    "charCode": 2,
    "char": "\u0002",
    "uri_encoding": "%02",
    "html_encoding": "\u0002"
    },
    {
    "charCode": 1,
    "char": "\u0001",
    "uri_encoding": "%01",
    "html_encoding": "\u0001"
    },
    {
    "charCode": 0,
    "char": "\u0000",
    "uri_encoding": "%00",
    "html_encoding": "\u0000"
    }
    ]
  5. nathanallen revised this gist Aug 4, 2016. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions javascript-character-encodings.js
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,6 @@
    // Script to generate list of character codes, characters, and their respective URI/HTML encodings.


    /*
    * HTML Escape Utility Function
    * Adapted from underscore libraries _.escape method.
  6. nathanallen created this gist Aug 4, 2016.
    764 changes: 764 additions & 0 deletions javascript-character-encodings-output.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,764 @@
    [
    {
    "charCode": 126,
    "char": "~",
    "uri_encoding": "~",
    "html_encoding": "~"
    },
    {
    "charCode": 125,
    "char": "}",
    "uri_encoding": "%7D",
    "html_encoding": "}"
    },
    {
    "charCode": 124,
    "char": "|",
    "uri_encoding": "%7C",
    "html_encoding": "|"
    },
    {
    "charCode": 123,
    "char": "{",
    "uri_encoding": "%7B",
    "html_encoding": "{"
    },
    {
    "charCode": 122,
    "char": "z",
    "uri_encoding": "z",
    "html_encoding": "z"
    },
    {
    "charCode": 121,
    "char": "y",
    "uri_encoding": "y",
    "html_encoding": "y"
    },
    {
    "charCode": 120,
    "char": "x",
    "uri_encoding": "x",
    "html_encoding": "x"
    },
    {
    "charCode": 119,
    "char": "w",
    "uri_encoding": "w",
    "html_encoding": "w"
    },
    {
    "charCode": 118,
    "char": "v",
    "uri_encoding": "v",
    "html_encoding": "v"
    },
    {
    "charCode": 117,
    "char": "u",
    "uri_encoding": "u",
    "html_encoding": "u"
    },
    {
    "charCode": 116,
    "char": "t",
    "uri_encoding": "t",
    "html_encoding": "t"
    },
    {
    "charCode": 115,
    "char": "s",
    "uri_encoding": "s",
    "html_encoding": "s"
    },
    {
    "charCode": 114,
    "char": "r",
    "uri_encoding": "r",
    "html_encoding": "r"
    },
    {
    "charCode": 113,
    "char": "q",
    "uri_encoding": "q",
    "html_encoding": "q"
    },
    {
    "charCode": 112,
    "char": "p",
    "uri_encoding": "p",
    "html_encoding": "p"
    },
    {
    "charCode": 111,
    "char": "o",
    "uri_encoding": "o",
    "html_encoding": "o"
    },
    {
    "charCode": 110,
    "char": "n",
    "uri_encoding": "n",
    "html_encoding": "n"
    },
    {
    "charCode": 109,
    "char": "m",
    "uri_encoding": "m",
    "html_encoding": "m"
    },
    {
    "charCode": 108,
    "char": "l",
    "uri_encoding": "l",
    "html_encoding": "l"
    },
    {
    "charCode": 107,
    "char": "k",
    "uri_encoding": "k",
    "html_encoding": "k"
    },
    {
    "charCode": 106,
    "char": "j",
    "uri_encoding": "j",
    "html_encoding": "j"
    },
    {
    "charCode": 105,
    "char": "i",
    "uri_encoding": "i",
    "html_encoding": "i"
    },
    {
    "charCode": 104,
    "char": "h",
    "uri_encoding": "h",
    "html_encoding": "h"
    },
    {
    "charCode": 103,
    "char": "g",
    "uri_encoding": "g",
    "html_encoding": "g"
    },
    {
    "charCode": 102,
    "char": "f",
    "uri_encoding": "f",
    "html_encoding": "f"
    },
    {
    "charCode": 101,
    "char": "e",
    "uri_encoding": "e",
    "html_encoding": "e"
    },
    {
    "charCode": 100,
    "char": "d",
    "uri_encoding": "d",
    "html_encoding": "d"
    },
    {
    "charCode": 99,
    "char": "c",
    "uri_encoding": "c",
    "html_encoding": "c"
    },
    {
    "charCode": 98,
    "char": "b",
    "uri_encoding": "b",
    "html_encoding": "b"
    },
    {
    "charCode": 97,
    "char": "a",
    "uri_encoding": "a",
    "html_encoding": "a"
    },
    {
    "charCode": 96,
    "char": "`",
    "uri_encoding": "%60",
    "html_encoding": "&#x60;"
    },
    {
    "charCode": 95,
    "char": "_",
    "uri_encoding": "_",
    "html_encoding": "_"
    },
    {
    "charCode": 94,
    "char": "^",
    "uri_encoding": "%5E",
    "html_encoding": "^"
    },
    {
    "charCode": 93,
    "char": "]",
    "uri_encoding": "%5D",
    "html_encoding": "]"
    },
    {
    "charCode": 92,
    "char": "\\",
    "uri_encoding": "%5C",
    "html_encoding": "\\"
    },
    {
    "charCode": 91,
    "char": "[",
    "uri_encoding": "%5B",
    "html_encoding": "["
    },
    {
    "charCode": 90,
    "char": "Z",
    "uri_encoding": "Z",
    "html_encoding": "Z"
    },
    {
    "charCode": 89,
    "char": "Y",
    "uri_encoding": "Y",
    "html_encoding": "Y"
    },
    {
    "charCode": 88,
    "char": "X",
    "uri_encoding": "X",
    "html_encoding": "X"
    },
    {
    "charCode": 87,
    "char": "W",
    "uri_encoding": "W",
    "html_encoding": "W"
    },
    {
    "charCode": 86,
    "char": "V",
    "uri_encoding": "V",
    "html_encoding": "V"
    },
    {
    "charCode": 85,
    "char": "U",
    "uri_encoding": "U",
    "html_encoding": "U"
    },
    {
    "charCode": 84,
    "char": "T",
    "uri_encoding": "T",
    "html_encoding": "T"
    },
    {
    "charCode": 83,
    "char": "S",
    "uri_encoding": "S",
    "html_encoding": "S"
    },
    {
    "charCode": 82,
    "char": "R",
    "uri_encoding": "R",
    "html_encoding": "R"
    },
    {
    "charCode": 81,
    "char": "Q",
    "uri_encoding": "Q",
    "html_encoding": "Q"
    },
    {
    "charCode": 80,
    "char": "P",
    "uri_encoding": "P",
    "html_encoding": "P"
    },
    {
    "charCode": 79,
    "char": "O",
    "uri_encoding": "O",
    "html_encoding": "O"
    },
    {
    "charCode": 78,
    "char": "N",
    "uri_encoding": "N",
    "html_encoding": "N"
    },
    {
    "charCode": 77,
    "char": "M",
    "uri_encoding": "M",
    "html_encoding": "M"
    },
    {
    "charCode": 76,
    "char": "L",
    "uri_encoding": "L",
    "html_encoding": "L"
    },
    {
    "charCode": 75,
    "char": "K",
    "uri_encoding": "K",
    "html_encoding": "K"
    },
    {
    "charCode": 74,
    "char": "J",
    "uri_encoding": "J",
    "html_encoding": "J"
    },
    {
    "charCode": 73,
    "char": "I",
    "uri_encoding": "I",
    "html_encoding": "I"
    },
    {
    "charCode": 72,
    "char": "H",
    "uri_encoding": "H",
    "html_encoding": "H"
    },
    {
    "charCode": 71,
    "char": "G",
    "uri_encoding": "G",
    "html_encoding": "G"
    },
    {
    "charCode": 70,
    "char": "F",
    "uri_encoding": "F",
    "html_encoding": "F"
    },
    {
    "charCode": 69,
    "char": "E",
    "uri_encoding": "E",
    "html_encoding": "E"
    },
    {
    "charCode": 68,
    "char": "D",
    "uri_encoding": "D",
    "html_encoding": "D"
    },
    {
    "charCode": 67,
    "char": "C",
    "uri_encoding": "C",
    "html_encoding": "C"
    },
    {
    "charCode": 66,
    "char": "B",
    "uri_encoding": "B",
    "html_encoding": "B"
    },
    {
    "charCode": 65,
    "char": "A",
    "uri_encoding": "A",
    "html_encoding": "A"
    },
    {
    "charCode": 64,
    "char": "@",
    "uri_encoding": "@",
    "html_encoding": "@"
    },
    {
    "charCode": 63,
    "char": "?",
    "uri_encoding": "?",
    "html_encoding": "?"
    },
    {
    "charCode": 62,
    "char": ">",
    "uri_encoding": "%3E",
    "html_encoding": "&gt;"
    },
    {
    "charCode": 61,
    "char": "=",
    "uri_encoding": "=",
    "html_encoding": "="
    },
    {
    "charCode": 60,
    "char": "<",
    "uri_encoding": "%3C",
    "html_encoding": "&lt;"
    },
    {
    "charCode": 59,
    "char": ";",
    "uri_encoding": ";",
    "html_encoding": ";"
    },
    {
    "charCode": 58,
    "char": ":",
    "uri_encoding": ":",
    "html_encoding": ":"
    },
    {
    "charCode": 57,
    "char": "9",
    "uri_encoding": "9",
    "html_encoding": "9"
    },
    {
    "charCode": 56,
    "char": "8",
    "uri_encoding": "8",
    "html_encoding": "8"
    },
    {
    "charCode": 55,
    "char": "7",
    "uri_encoding": "7",
    "html_encoding": "7"
    },
    {
    "charCode": 54,
    "char": "6",
    "uri_encoding": "6",
    "html_encoding": "6"
    },
    {
    "charCode": 53,
    "char": "5",
    "uri_encoding": "5",
    "html_encoding": "5"
    },
    {
    "charCode": 52,
    "char": "4",
    "uri_encoding": "4",
    "html_encoding": "4"
    },
    {
    "charCode": 51,
    "char": "3",
    "uri_encoding": "3",
    "html_encoding": "3"
    },
    {
    "charCode": 50,
    "char": "2",
    "uri_encoding": "2",
    "html_encoding": "2"
    },
    {
    "charCode": 49,
    "char": "1",
    "uri_encoding": "1",
    "html_encoding": "1"
    },
    {
    "charCode": 48,
    "char": "0",
    "uri_encoding": "0",
    "html_encoding": "0"
    },
    {
    "charCode": 47,
    "char": "/",
    "uri_encoding": "/",
    "html_encoding": "/"
    },
    {
    "charCode": 46,
    "char": ".",
    "uri_encoding": ".",
    "html_encoding": "."
    },
    {
    "charCode": 45,
    "char": "-",
    "uri_encoding": "-",
    "html_encoding": "-"
    },
    {
    "charCode": 44,
    "char": ",",
    "uri_encoding": ",",
    "html_encoding": ","
    },
    {
    "charCode": 43,
    "char": "+",
    "uri_encoding": "+",
    "html_encoding": "+"
    },
    {
    "charCode": 42,
    "char": "*",
    "uri_encoding": "*",
    "html_encoding": "*"
    },
    {
    "charCode": 41,
    "char": ")",
    "uri_encoding": ")",
    "html_encoding": ")"
    },
    {
    "charCode": 40,
    "char": "(",
    "uri_encoding": "(",
    "html_encoding": "("
    },
    {
    "charCode": 39,
    "char": "'",
    "uri_encoding": "'",
    "html_encoding": "&#x27;"
    },
    {
    "charCode": 38,
    "char": "&",
    "uri_encoding": "&",
    "html_encoding": "&amp;"
    },
    {
    "charCode": 37,
    "char": "%",
    "uri_encoding": "%25",
    "html_encoding": "%"
    },
    {
    "charCode": 36,
    "char": "$",
    "uri_encoding": "$",
    "html_encoding": "$"
    },
    {
    "charCode": 35,
    "char": "#",
    "uri_encoding": "#",
    "html_encoding": "#"
    },
    {
    "charCode": 34,
    "char": "\"",
    "uri_encoding": "%22",
    "html_encoding": "&quot;"
    },
    {
    "charCode": 33,
    "char": "!",
    "uri_encoding": "!",
    "html_encoding": "!"
    },
    {
    "charCode": 32,
    "char": " ",
    "uri_encoding": "%20",
    "html_encoding": " "
    },
    {
    "charCode": 31,
    "char": "\u001f",
    "uri_encoding": "%1F",
    "html_encoding": "\u001f"
    },
    {
    "charCode": 30,
    "char": "\u001e",
    "uri_encoding": "%1E",
    "html_encoding": "\u001e"
    },
    {
    "charCode": 29,
    "char": "\u001d",
    "uri_encoding": "%1D",
    "html_encoding": "\u001d"
    },
    {
    "charCode": 28,
    "char": "\u001c",
    "uri_encoding": "%1C",
    "html_encoding": "\u001c"
    },
    {
    "charCode": 27,
    "char": "\u001b",
    "uri_encoding": "%1B",
    "html_encoding": "\u001b"
    },
    {
    "charCode": 26,
    "char": "\u001a",
    "uri_encoding": "%1A",
    "html_encoding": "\u001a"
    },
    {
    "charCode": 25,
    "char": "\u0019",
    "uri_encoding": "%19",
    "html_encoding": "\u0019"
    },
    {
    "charCode": 24,
    "char": "\u0018",
    "uri_encoding": "%18",
    "html_encoding": "\u0018"
    },
    {
    "charCode": 23,
    "char": "\u0017",
    "uri_encoding": "%17",
    "html_encoding": "\u0017"
    },
    {
    "charCode": 22,
    "char": "\u0016",
    "uri_encoding": "%16",
    "html_encoding": "\u0016"
    },
    {
    "charCode": 21,
    "char": "\u0015",
    "uri_encoding": "%15",
    "html_encoding": "\u0015"
    },
    {
    "charCode": 20,
    "char": "\u0014",
    "uri_encoding": "%14",
    "html_encoding": "\u0014"
    },
    {
    "charCode": 19,
    "char": "\u0013",
    "uri_encoding": "%13",
    "html_encoding": "\u0013"
    },
    {
    "charCode": 18,
    "char": "\u0012",
    "uri_encoding": "%12",
    "html_encoding": "\u0012"
    },
    {
    "charCode": 17,
    "char": "\u0011",
    "uri_encoding": "%11",
    "html_encoding": "\u0011"
    },
    {
    "charCode": 16,
    "char": "\u0010",
    "uri_encoding": "%10",
    "html_encoding": "\u0010"
    },
    {
    "charCode": 15,
    "char": "\u000f",
    "uri_encoding": "%0F",
    "html_encoding": "\u000f"
    },
    {
    "charCode": 14,
    "char": "\u000e",
    "uri_encoding": "%0E",
    "html_encoding": "\u000e"
    },
    {
    "charCode": 13,
    "char": "\r",
    "uri_encoding": "%0D",
    "html_encoding": "\r"
    },
    {
    "charCode": 12,
    "char": "\f",
    "uri_encoding": "%0C",
    "html_encoding": "\f"
    },
    {
    "charCode": 11,
    "char": "\u000b",
    "uri_encoding": "%0B",
    "html_encoding": "\u000b"
    },
    {
    "charCode": 10,
    "char": "\n",
    "uri_encoding": "%0A",
    "html_encoding": "\n"
    },
    {
    "charCode": 9,
    "char": "\t",
    "uri_encoding": "%09",
    "html_encoding": "\t"
    },
    {
    "charCode": 8,
    "char": "\b",
    "uri_encoding": "%08",
    "html_encoding": "\b"
    },
    {
    "charCode": 7,
    "char": "\u0007",
    "uri_encoding": "%07",
    "html_encoding": "\u0007"
    },
    {
    "charCode": 6,
    "char": "\u0006",
    "uri_encoding": "%06",
    "html_encoding": "\u0006"
    },
    {
    "charCode": 5,
    "char": "\u0005",
    "uri_encoding": "%05",
    "html_encoding": "\u0005"
    },
    {
    "charCode": 4,
    "char": "\u0004",
    "uri_encoding": "%04",
    "html_encoding": "\u0004"
    },
    {
    "charCode": 3,
    "char": "\u0003",
    "uri_encoding": "%03",
    "html_encoding": "\u0003"
    },
    {
    "charCode": 2,
    "char": "\u0002",
    "uri_encoding": "%02",
    "html_encoding": "\u0002"
    },
    {
    "charCode": 1,
    "char": "\u0001",
    "uri_encoding": "%01",
    "html_encoding": "\u0001"
    },
    {
    "charCode": 0,
    "char": "\u0000",
    "uri_encoding": "%00",
    "html_encoding": "\u0000"
    }
    ]
    58 changes: 58 additions & 0 deletions javascript-character-encodings.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,58 @@
    /*
    * HTML Escape Utility Function
    * Adapted from underscore libraries _.escape method.
    */

    var escape = (function() {

    var ESCAPE_MAP = {
    '&': '&amp;',
    '<': '&lt;',
    '>': '&gt;',
    '"': '&quot;',
    "'": '&#x27;',
    '`': '&#x60;'
    };

    var escaper = function(match) {
    return ESCAPE_MAP[match];
    };

    var source = '(?:' + Object.keys(ESCAPE_MAP).join('|') + ')';
    var testRegexp = RegExp(source);
    var replaceRegexp = RegExp(source, 'g');
    return function(string) {
    string = string == null ? '' : '' + string;
    return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;
    };

    }());


    /*
    * For character codes n..0, outputs:
    * charCode, char, url_encoding, html_encoding
    */

    function generateEncodings(n){
    var out = [];
    while(n--){
    var char = String.fromCharCode(n);
    out.push({
    charCode: n,
    char: char,
    uri_encoding: encodeURI(char),
    html_encoding: escape(char)
    });
    }
    return out
    }

    /*
    * Driver Code
    */

    var result = generateEncodings(127) // first 127 characters

    // console.table && console.table(result); // tabular format (Chrome Browser)
    console.log(JSON.stringify(result, true, 4)); // JSON format