我正在尝试存储一个完全限定的网址,还有查询参数:
www.miosito.net?prova®=bis
但它导致了一个问题,因为®
类似于®
实体,并且android告诉我那个并且html实体编写得不好。
我需要这个,因为每个语言环境都使用完全不同的url查询参数集。
我尝试使用[[CDATA[.. ]]
,但xml解析器不喜欢这种语法。
答案 0 :(得分:16)
问题不在于&req
,而在于&
本身。对于XML / HTML,您必须使用&
实体(或&
),但对于URL,您应该使用URL编码(see docs)字符串,在这种情况下说{{1应该用&
替换。所以你的最终字符串应如下所示:
www.miosito.net?prova%26reg=bis
答案 1 :(得分:5)
像这样存储:
<string name="my_url">"www.miosito.net?prova&reg=bis"</string>
其中&
是&符号 &
的XML等价物。
答案 2 :(得分:1)
百分比编码可以解决问题:http://en.wikipedia.org/wiki/Percent-encoding 你基本上会有这样的东西:www.miosito.net?prova%26reg = bis
答案 3 :(得分:1)
您可以将您的网址用双引号括起来,例如:
<string name="my_url">"www.miosito.net?prova®=bis"</string>
这是在Android中包含字符串资源的推荐方法。
更新1:有关详细信息,请查看以下链接:
http://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling
更新2:
@WebnetMobile.com:正确,确实:)
'&安培;'正在被xml处理为特殊字符并且用引号括起来不起作用。我试过了
www.miosito.net?prova%26reg=bis
它也没有成功。我甚至尝试用引号括起来,但仍然没有用。我错过了什么吗?
同时,以下工作:
<string name="my_url">www.miosito.net%1$sprova%2$sreg=bis</string>
然后在代码中:
Resources resources=getResources();
String url=String.format(resources.getString(R.string.my_url),"?","&") ;
'%1 $ s'和'%2 $ s'是格式说明符,非常类似于在C.中的printf中使用的''%1 $ s'用于字符串,'%2 $ d'用于小数数字等等。