(добавляя это в эту ветку в надежде, что кто-то еще получит удар по этому и не должен тратить свое драгоценное время)
Сегодня я зашел в тупик, когда попытался добавить в приложение Grails 2.3.11 / Groovy 2.1.9 вывод
String src = render(
model: ...,
template: ...,
)
.encodeAsBase64()
как атрибут data-
для элемента DOM. Но atob()
в соответствующем JavaScript, то есть код, который декодирует строку Base64 из атрибута данных, продолжал жаловаться на недопустимые символы, в то время как другие декодеры, например, base64 -d
без проблем принял ту же строку Base64.
Решение состоит в том, чтобы принудительно вернуть возвращаемое значение render()
в одну строку, а затем применить кодировку Base64, т.е.
String src = render(
model: ...,
template: ...,
)
.toString()
.encodeAsBase64()
или (если вы считаете encodeAsBase64()
устаревшим):
String src = render(
model: ...,
template: ...,
)
.toString()
.bytes
.encodeBase64() // add 'true' for chunked output