Это моя первая попытка изучить и использовать Kotlin. У меня есть простая задача: прочитать файл построчно, предварительно обработать каждую строку и поместить определенную часть в карту. Каждая строка разделена табуляцией.
При попытке предварительной обработки, все начинает идти ужасно неправильно. Я попытался отладить, и вместо обычных символов я вижу следующее:
Между каждыми двумяРядом с читаемыми символами есть странный блок с горизонтальными линиями.
Вот код, который я написал:
fun mapUserToId(path: String): MutableMap<String, Int> {
val user2id = mutableMapOf<String, Int>()
val bufferedReader = File(path).bufferedReader()
bufferedReader.useLines { lines ->
lines.drop(1).forEach { // dropping the first line with column headers
val components: List<String> = it.trim().split("\t") // split by tab delimiter
val user: String = components[2]
println(user.length) // length is nearly double due to the strange block-like characters
val id: String = components[3]
user2id[user] = id.toInt() // fails due to number format exception, because of those block-like characters
}
}
return user2id
}
Это похоже на проблему с набором символов, но я не могу понятьчто такое кодировка может быть, и как указать эту кодировку в приведенном выше коде. Открытие файла в vim
выглядит совершенно нормально (например, можно было бы предположить, что этот файл имеет кодировку UTF-8).