Android - 我什么时候应该在 Strings.xml 资源文件中转义 unicode?
Android - When should I escape unicode in Strings.xml resource file?
根据文档,unicode 字符在 strings.xml 文件中应与 \u 前缀一起使用。例如使用 \u00a9
而不是 ©
.
<string name="copyright_text">Copyrighted ©</string>
但是如果我直接写 © 它似乎即使在 API 中也能正常工作 21.除了其他更有影响力的字符,如 ash &、< > 等,是否有任何场景真的需要转义? .?
我没有明确的权威指向,但根据我个人的经验,我发现使用 \u
符号的唯一原因是字符在视觉上有歧义。例如,我使用 \u2013
而不是实际的破折号字符 "–"
,因为该字形在视觉上与标准连字符 "-"
非常相似。另一种常见情况是使用 \u00a0
而不是实际的不间断 space 字符。
据我所知,没有技术理由不在字符串文件中使用 unicode 字符,只要文件本身使用支持它们的字符编码即可。
请注意,Android Studio 的 lint 功能实际上会提示您在某些情况下使用这些特殊字符:
应用建议的修复后会留下一个省略号字符 "…"
,而不是一个的编码。
根据文档,unicode 字符在 strings.xml 文件中应与 \u 前缀一起使用。例如使用 \u00a9
而不是 ©
.
<string name="copyright_text">Copyrighted ©</string>
但是如果我直接写 © 它似乎即使在 API 中也能正常工作 21.除了其他更有影响力的字符,如 ash &、< > 等,是否有任何场景真的需要转义? .?
我没有明确的权威指向,但根据我个人的经验,我发现使用 \u
符号的唯一原因是字符在视觉上有歧义。例如,我使用 \u2013
而不是实际的破折号字符 "–"
,因为该字形在视觉上与标准连字符 "-"
非常相似。另一种常见情况是使用 \u00a0
而不是实际的不间断 space 字符。
据我所知,没有技术理由不在字符串文件中使用 unicode 字符,只要文件本身使用支持它们的字符编码即可。
请注意,Android Studio 的 lint 功能实际上会提示您在某些情况下使用这些特殊字符:
应用建议的修复后会留下一个省略号字符 "…"
,而不是一个的编码。