Android - 我什么时候应该在 Strings.xml 资源文件中转义 unicode?

标签 android unicode android-resources unicode-escapes android-resource-file

根据文档,unicode 字符在 strings.xml 文件中应与\u 前缀一起使用。例如,使用 \u00a9 而不是 ©

<string name="copyright_text">Copyrighted ©</string>

但如果我直接写 © ,它似乎即使在 API 21 中也能正常工作。除了其他更有影响力的字符,如 &、< > 等,是否有任何场景真的需要转义?

最佳答案

我没有明确的权威指向,但根据我个人的经验,我发现使用 \u 符号的唯一原因是字符在视觉上有歧义。例如,我使用 \u2013 而不是实际的破折号字符 "–" 因为字形在视觉上与标准连字符 "-"。另一种常见情况是使用 \u00a0 而不是实际的不间断空格字符。

据我所知,没有技术理由不在字符串文件中使用 unicode 字符,只要文件本身使用支持它们的字符编码即可。

请注意,Android Studio 的 lint 功能实际上会提示您在某些情况下使用这些特殊字符:

enter image description here

应用建议的修复后,您会得到一个省略号字符 "...",而不是一个的编码。

关于Android - 我什么时候应该在 Strings.xml 资源文件中转义 unicode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68168064/

相关文章:

python - 将 UTF-8 字节转换为 Python 中的其他编码

java - Android gradle 构建错误 :(65, 0) 找不到 Gradle DSL 方法: 'compile()'

按名称搜索时未列出 Android 应用程序,下载时未显示所需权限

使用 NLS_CHARACTERSET 为 WE8ISO8859P1 且 NLS_NCHAR_CHARACTERSET 为 AL16UTF16 且使用 ColdFusion 作为编程语言时出现 Oracle Unicode 问题

在纵向和横向之间切换时,Android整数xml资源值不会改变

android - 获取 RelativeLayout 的尺寸时 R.id 中没有 RelativeLayout id

android - 从资源 id 整数获取颜色给出错误

android - 如何知道 RecyclerView 何时完成放置项目?

Androidx Activity OnBackPressedCallback 接口(interface)问题

python - SQLAlchemy 的 Unicode 问题