#android #unicode #android-resources #unicode-escapes #android-resource-file
Вопрос:
В соответствии с документацией символы юникода должны использоваться с префиксом strings.xml файл. Например, используйте u00a9
вместо ©
.
<string name="copyright_text">Copyrighted ©</string>
Но если я напишу © напрямую, это, кажется, хорошо работает даже в API 21. Есть ли какой-либо сценарий, в котором действительно необходимо использовать другие, более эффектные символы, такие какamp;, < > и т.д.?
Ответ №1:
У меня нет определенного авторитета, на который я мог бы указать, но, по моему личному опыту, единственная причина, по которой я нашел использование u
обозначения, заключается в том, что персонаж визуально неоднозначен. Например, я использую u2013
вместо фактического символа тире "–"
, потому что глиф так визуально похож на стандартный дефис "-"
. Другим распространенным сценарием является использование u00a0
вместо фактического неразрывного символа пробела.
Насколько мне известно, нет никаких технических причин не использовать символы юникода в вашем файле strings, если в самом файле используется кодировка символов, которая их поддерживает.
Обратите внимание, что функция lint в Android Studio фактически предложит вам использовать эти специальные символы в определенных сценариях:
Применение предложенного исправления оставляет вас с символом многоточия "…"
, а не с кодировкой для него.