Сервер возвращает веб-страницу, сжатую с помощью gzip , поэтому он, естественно, содержит множество неотображаемых символов.
Вы можете подтвердить это без использования Kotlin, например:
$ wget 'https://api.stackexchange.com/2.2/questions?order=desc&sort=activity&site=stackoverflow'
[output snipped]
$ file 'questions\?order=desc\&sort=activity\&site=stackoverflow'
questions?order=desc&sort=activity&site=stackoverflow: gzip compressed data, from TOPS/20, original size 19820
Вы можете использовать Kotlin, чтобы распаковать его - но это проще, если вы читаете URL как байты, чтобы избежать любых преобразований набора символов:
val url = URL("https://api.stackexchange.com/2.2/questions?order=desc&sort=activity&site=stackoverflow")
val content = GZIPInputStream(ByteArrayInputStream(url.readBytes()))
.bufferedReader()
.use { it.readText() }