当前位置: 首页 > 工具软件 > Apostrophe > 使用案例 >

Android报错:AAPT: error: unescaped apostrophe in string;Multiple substitutions specified in non-positi

司允晨
2023-12-01

一、AAPT: error: unescaped apostrophe in string

报错原因分析

做国际化多语言功能时,我在arrays.xml文件中定义了一些字符串如下

<item>My name's Lisa</item>

报错翻译过来是字符串未替换的撇号
于是我思考可能是'导致的报错,于是我把上述代码替换为下面的代码报错就解决了。

<item>My name&quot;s Lisa</item>

报错解决

  • 撇号'可用&quot;替换,如:<item>My name&quot;s Lisa</item>
  • 可使用双引号将字符串资源括起来,如:<item>"My name's Lisa"</item>
  • 可使用转义字符在撇号'前,如:<item>My name\'s Lisa</item>

二、Multiple substitutions specified in non-positional format报错

报错原因分析

首先我在string.xml文件中定义了一些字符串

<string name = "upgrade_time"> 驱动板:%s\t\t信号版:%s</string>

报错翻译过来就是以非位置格式指定的多个替换,报错提示中有提到设置formatted="false",于是我把上述的代码改成了下面的就不会运行报错了。

<string name = "upgrade_time" formatted="false"> 驱动板:%s\t\t信号版:%s</string>

报错解决方式

查看了一些博文,且亲试了一下,有这些方式可以解决上述报错:

  • 字符串中添加formatted="false"属性
  • %%表示一个%

三、一些常用HTML特殊字符编码

在Android的xml文件中,涉及到一些特殊字符的显示可能会报错的,需要用HTML特殊字符去转换。(单引号可采用\'来表示)

特殊符号HTML编码
&&amp;
>&gt;
<&lt;
>&gt;
"&quot;
>&gt;
半个空白位ensp;
一个空白位&emsp;
>&gt;
 类似资料: