Итак, буква a
в десятичном виде - 97
, в шестнадцатеричном - 61
, а в восьмеричном - 141
. Вы можете написать это в JavaScript:
var octal = [ '\141', '\141', '\141' ]
var hex = [ '\x61', '\x61', '\x61' ]
var ascii = [ 'a', 'a', 'a' ]
Все они приводят к одному и тому же:
console.log(octal) //=> ["a", "a", "a"]
console.log(hex) //=> ["a", "a", "a"]
console.log(ascii) //=> ["a", "a", "a"]
Тем не менее, первая часть, которая меня интересует, заключается в том, что это фактически различное количество символов ASCII для определения :
'\141' (4)
'\x61' (4)
'a' (1)
Мне интересно, если вы определите большой блок текста в восьмеричном или шестнадцатеричном формате, он на самом деле займет в 4 раза больше места в файле. Поэтому, если вы вернете ответ JSON от /api/resources.json
как восьмеричное, ответ будет в 4 раза больше, чем если бы вы вернули ASCII. То есть ответ на это:
'\141\141\141\141\141\141\141\141\141\141\141\141....'
По сравнению с ответом на это:
'aaaaaaaaaaa....'
Так что я не уверен, действительно ли он увеличивает размер файла / размер ответа (возможно, глупый вопрос, но это кодирование сложно). Просто хочу убедиться, что да, это займет больше места, потому что это так. Таким образом, написание «сырого шестнадцатеричного / восьмеричного» в файле JavaScript приводит к тому, что оно становится больше, чем ASCII.