做国际化多语言功能时,我在arrays.xml文件中定义了一些字符串如下
<item>My name's Lisa</item>
报错翻译过来是字符串未替换的撇号
于是我思考可能是'
导致的报错,于是我把上述代码替换为下面的代码报错就解决了。
<item>My name"s Lisa</item>
撇号'
可用";
替换,如:<item>My name"s Lisa</item>
<item>"My name's Lisa"</item>
撇号'
前,如:<item>My name\'s Lisa</item>
首先我在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"
属性%%
表示一个%
在Android的xml文件中,涉及到一些特殊字符的显示可能会报错的,需要用HTML特殊字符去转换。(单引号可采用\'
来表示)
特殊符号 | HTML编码 |
---|---|
& | & |
> | > |
< | < |
> | > |
" | " |
> | > |
半个空白位 | ensp; |
一个空白位 |   |
> | > |