Как обрабатывать спецсимволы в Kotlin Android - PullRequest
1 голос
/ 03 марта 2020

У меня есть строка, которую я получаю от API (нет контроля над ней). Если строка содержит специальный символ, такой как апостроф, она будет преобразована во что-то еще.

Это выглядит примерно так:

text_view.text = "Hannah's Law"

При отображении на Android это будет :

Hannah's Law

Я пытался преобразовать строку в byteArray, а затем кодировать в UTF-8, но безуспешно:

val byteArray = template.execute(bindingDictionary).toByteArray() // This is the Actual String
String(byteArray,Charsets.UTF_8) // Did not work

Ответы [ 2 ]

1 голос
/ 03 марта 2020
'

- это HTML для апострофа. Вы можете использовать от Html, чтобы преобразовать это в текст с апострофом.

    val fromApi = "Hannah's Law"
    val textFromHtmlFromApi = HtmlCompat.fromHtml(fromApi, HtmlCompat.FROM_HTML_MODE_LEGACY)
    text_view.text = textFromHtmlFromApi
0 голосов
/ 03 марта 2020

используйте символы Юникода, как здесь https://www.rapidtables.com/code/text/unicode-characters.html
, например, вместо

String str = "Hannah's Law"  

используйте

String str = "Hannah\u0027s Law"

то же самое, если вам нужно, например, пробел в конце строки

String str = "string with space in the end\u0020"

для Kotlin используйте

var str: String = "string with space in the end\u0020"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...