Kotlin Android плохое преобразование символов UTF-8Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Kotlin Android плохое преобразование символов UTF-8

Сообщение Anonymous »

Я столкнулся с основной проблемой с Kotlin Android (API 29)

Код: Выделить всё

import kotlin.text.Charsets.UTF_8

var buf = byteArrayOf(0xF0.toByte(), 0xa9.toByte(), 0xbd.toByte(), 0xbe.toByte())
var s = String( buf, UTF_8)
Log.e(TAG, "buf len ${buf.size} as UTF-8 :  len ${s8.length}")
После преобразования строки из байтового буфера Я получаю длину строки = 2 (как если бы Kotlin думал, что строка имеет формат UTF-16), но, конечно, строка длина должна быть равна 1.
С Python проблем нет!!
Вывод:

Код: Выделить всё

 buf len 4 as UTF-8 :  len 2
Я. он недоумевал: как это возможно? Как преобразование строк Kotlin может быть неправильным?
Обратите внимание, что UTF-8 F0A9BDBE подходит для символа 𩽾

Подробнее здесь: https://stackoverflow.com/questions/785 ... characters
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»