Кодировка данных URI по умолчанию
Существует ли кодировка по умолчанию для URI данных? Я прочитал спецификацию, но не вижу ее.
Например, если у меня есть URI данных для исходной карты, который, как я ожидаю, будет надежно интерпретирован во всех браузерах, можно ли пропустить кодировку?
//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJza...
против
//@ sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJza...
В этом выпуске GitHub я вижу, что у людей возникали проблемы с использованием китайских символов в файлах с исходным сопоставлением без явного charset=utf-8
, Так что если есть значение по умолчанию (или, по крайней мере, если бы мы могли ожидать, что браузер выбрал один), это не похоже на utf-8
единственный...
0 ответов
Согласно RFC 2397 §2, URI данных без указанногоcharset
по умолчанию US-ASCII
. Потому что каждый URI в кодировке Base64 использует только символы ASCII. Более того, "все строки US‑ASCII становятся действительными UTF‑8", что означает "во многих случаях приличная обратная совместимость".1
Тем не менее, реализация UTF-8 в 2019 году остается неравномерной. Из-за этого - а также потому, что явный вызов charset
в URI данных, уже недружелюбных к пользователю - вероятно, неплохо было бы включитьcharset=utf-8
в URI исходной карты, чтобы обеспечить их надежную интерпретацию в браузерах.
- Ответ Арджуна Чаудхари на вопрос: есть ли резкая разница между UTF-8 и UTF-16.