Android — Когда мне следует избегать unicode в Strings.xml файл ресурсов?

#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 фактически предложит вам использовать эти специальные символы в определенных сценариях:

введите описание изображения здесь

Применение предложенного исправления оставляет вас с символом многоточия "…" , а не с кодировкой для него.