string.xml 中显示特殊符号

项目中要在string.xml 中显示特殊符号,如@号冒号等,直接写肯定不行啦。。只能考虑使用ASCII码进行显示: 

@号 @ 
:号 : 
空格   


以下为常见的ASCII十进制交换编码: 

&#032;--> <-- 这边是空格 
&#033;-->!<-- 
&#034;-->"<-- xml中需要在前面加入\ 
&#035;-->#<-- 
&#036;-->$<-- 
&#037;-->%<-- 
&#038;-->&<-- 
&#039;-->'<-- 
&#040;-->(<-- 
&#041;-->)<-- 
&#042;-->*<-- 
&#043;-->+<-- 
&#044;-->,<-- 
&#045;-->-<-- 
&#046;-->.<-- 
&#047;-->/<-- 
&#058;-->:<-- 
&#059;-->;<-- 
&#060;--><<-- 
&#061;-->=<-- 
&#062;-->><-- 
&#063;-->?<-- 
&#064;-->@<-- 
&#091;-->[<-- 
&#092;-->-- 
&#093;-->]<-- 
&#094;-->^<-- 
&#095;-->_<-- 
&#096;-->`<-- 
&#123;-->{<-- 
&#124;-->|<-- 
&#125;-->}<-- 
&#126;-->~<-- 
&#160;--> <--这边是空格,在xml首字符中不会被忽略 
&#161;-->¡<-- 
&#162;-->¢<-- 
&#163;-->£<-- 
&#164;-->¤<-- 
&#165;-->¥<-- 
&#166;-->¦<-- 
&#167;-->§<-- 
&#168;-->¨<-- 
&#169;-->©<-- 
&#170;-->ª<-- 
&#171;-->«<-- 
&#172;-->¬<-- 
&#173;-->­<-- 
&#174;-->®<-- 
&#175;-->¯<-- 
&#176;-->°<-- 
&#177;-->±<-- 
&#178;-->²<-- 
&#179;-->³<-- 
&#180;-->´<-- 
&#181;-->µ<-- 
&#182;-->¶<-- 
&#183;-->•<-- 
&#184;-->¸<-- 
&#185;-->¹<-- 
&#186;-->º<-- 
&#187;-->»<-- 
&#188;-->¼<-- 
&#189;-->½<-- 
&#190;-->¾<-- 
&#191;-->¿<-- 
&#192;-->À<-- 
&#193;-->Á<-- 
&#194;-->Â<-- 
&#195;-->Ã<-- 
&#196;-->Ä<-- 
&#197;-->Å<-- 
&#198;-->Æ<-- 
&#199;-->Ç<-- 
&#200;-->È<-- 
&#201;-->É<-- 
&#202;-->Ê<-- 
&#203;-->Ë<-- 
&#204;-->Ì<-- 
&#205;-->Í<-- 
&#206;-->Î<-- 
&#207;-->Ï<-- 
&#208;-->Ð<-- 
&#209;-->Ñ<-- 
&#210;-->Ò<-- 
&#211;-->Ó<-- 
&#212;-->Ô<-- 
&#213;-->Õ<-- 
&#214;-->Ö<-- 
&#215;-->×<-- 
&#216;-->Ø<-- 
&#217;-->Ù<-- 
&#218;-->Ú<-- 
&#219;-->Û<-- 
&#220;-->Ü<-- 
&#221;-->Ý<-- 
&#222;-->Þ<-- 
&#223;-->ß<-- 
&#224;-->à<-- 
&#225;-->á<-- 
&#226;-->â<-- 
&#227;-->ã<-- 
&#228;-->ä<-- 
&#229;-->å<-- 
&#230;-->æ<-- 
&#231;-->ç<-- 
&#232;-->è<-- 
&#233;-->é<-- 
&#234;-->ê<-- 
&#235;-->ë<-- 
&#236;-->ì<-- 
&#237;-->í<-- 
&#238;-->î<-- 
&#239;-->ï<-- 
&#240;-->ð<-- 
&#241;-->ñ<-- 
&#242;-->ò<-- 
&#243;-->ó<-- 
&#244;-->ô<-- 
&#245;-->õ<-- 
&#246;-->ö<-- 
&#247;-->÷<-- 
&#248;-->ø<-- 
&#249;-->ù<-- 
&#250;-->ú<-- 
&#251;-->û<-- 
&#252;-->ü<-- 
&#253;-->ý<-- 
&#254;-->þ<-- 
&#255;-->ÿ<-- 
&#256;-->Ā<-- 
&#257;-->ā<-- 
&#258;-->Ă<-- 
&#259;-->ă<-- 
&#260;-->Ą<-- 
&#261;-->ą<-- 
&#262;-->Ć<-- 
&#263;-->ć<-- 
&#264;-->Ĉ<-- 
&#265;-->ĉ<-- 
&#266;-->Ċ<-- 
&#267;-->ċ<-- 
&#268;-->Č<-- 
&#269;-->č<-- 
&#270;-->Ď<-- 
&#271;-->ď<-- 
&#272;-->Đ<-- 
&#273;-->đ<-- 
&#274;-->Ē<-- 
&#275;-->ē<-- 
&#276;-->Ĕ<-- 
&#277;-->ĕ<-- 
&#278;-->Ė<-- 
&#279;-->ė<-- 
&#280;-->Ę<-- 
&#281;-->ę<-- 
&#282;-->Ě<-- 
&#283;-->ě<-- 
&#284;-->Ĝ<-- 
&#285;-->ĝ<-- 
&#286;-->Ğ<-- 
&#287;-->ğ<-- 
&#288;-->Ġ<-- 
&#289;-->ġ<-- 
&#290;-->Ģ<-- 
&#291;-->ģ<-- 
&#292;-->Ĥ<-- 
&#293;-->ĥ<-- 
&#294;-->Ħ<-- 
&#295;-->ħ<-- 
&#296;-->Ĩ<-- 
&#297;-->ĩ<-- 
&#298;-->Ī<-- 
&#299;-->ī<-- 
&#300;-->Ĭ<-- 
&#301;-->ĭ<-- 
&#302;-->Į<-- 
&#303;-->į<-- 
&#304;-->İ<-- 
&#305;-->ı<-- 
&#306;-->IJ<-- 
&#307;-->ij<-- 
&#308;-->Ĵ<-- 
&#309;-->ĵ<-- 
&#310;-->Ķ<-- 
&#311;-->ķ<-- 
&#312;-->ĸ<-- 
&#313;-->Ĺ<-- 
&#314;-->ĺ<-- 
&#315;-->Ļ<-- 
&#316;-->ļ<-- 
&#317;-->Ľ<-- 
&#318;-->ľ<-- 
&#319;-->Ŀ<-- 
&#320;-->ŀ<-- 
&#321;-->Ł<-- 
&#322;-->ł<-- 
&#323;-->Ń<-- 
&#324;-->ń<-- 
&#325;-->Ņ<-- 
&#326;-->ņ<-- 
&#327;-->Ň<-- 
&#328;-->ň<-- 
&#329;-->ʼn<-- 
&#330;-->Ŋ<-- 
&#331;-->ŋ<-- 
&#332;-->Ō<-- 
&#333;-->ō<-- 
&#334;-->Ŏ<-- 
&#335;-->ŏ<-- 
&#336;-->Ő<-- 
&#337;-->ő<-- 
&#338;-->Œ<-- 
&#339;-->œ<-- 
&#340;-->Ŕ<-- 
&#341;-->ŕ<-- 
&#342;-->Ŗ<-- 
&#343;-->ŗ<-- 
&#344;-->Ř<-- 
&#345;-->ř<-- 
&#346;-->Ś<-- 
&#347;-->ś<-- 
&#348;-->Ŝ<-- 
&#349;-->ŝ<-- 
&#350;-->Ş<-- 
&#351;-->ş<-- 
&#352;-->Š<-- 
&#353;-->š<-- 
&#354;-->Ţ<-- 
&#355;-->ţ<-- 
&#356;-->Ť<-- 
&#357;-->ť<-- 
&#358;-->Ŧ<-- 
&#359;-->ŧ<-- 
&#360;-->Ũ<-- 
&#361;-->ũ<-- 
&#362;-->Ū<-- 
&#363;-->ū<-- 
&#364;-->Ŭ<-- 
&#365;-->ŭ<-- 
&#366;-->Ů<-- 
&#367;-->ů<-- 
&#368;-->Ű<-- 
&#369;-->ű<-- 
&#370;-->Ų<-- 
&#371;-->ų<-- 
&#372;-->Ŵ<-- 
&#373;-->ŵ<-- 
&#374;-->Ŷ<-- 
&#375;-->ŷ<-- 
&#376;-->Ÿ<-- 
&#377;-->Ź<-- 
&#378;-->ź<-- 
&#379;-->Ż<-- 
&#380;-->ż<-- 
&#381;-->Ž<-- 

&#382;-->ž<--

Multiple annotations found at this line:
    - error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" 
      attribute?
    - error: Unexpected end tag string
 
反复检查后发现是string.xml中的 % 导致编译失败,
 
这是由于新的SDK采用了新版本的aapt(Android项目编译器),这个版本的aapt编译起来会比老版本更加的严格,然后在Android最新的开发文档的描述String的部分,已经说明了如何去设置 %s 等符号,下面是文档片段:
 
If you need to format your strings using String.format(String, Object...) , then you can do so by putting your format arguments in the string resource. For example, with the following resource:
 
如果你需要使用 String.format(String, Object...) 来格式化你的字符串,你可以把格式化参数放在你的字符串中,参见下面的例子:
 
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
 
In this example, the format string has two arguments: %1$s is a string and %2$d is a decimal number. You can format the string with arguements from your application like this:
 
在这个例子中,这个格式化的字符串有2个参数, %1$s是个字符串 %2$d 是个浮点数,你可以在你的程序中按照下面的方法来根据参数来格式化字符串:
 
Resources res = getResources();
 
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
 
那么根据例子上说的我需要把%s换成%1$s才行了,修改后编译通过,程序成功启动。
 
问题补充:
 
有读者问如何在<string></string>中使用%号
 
有两个办法可供选择
1. 用%%来表示1个%,和转意符号 / 的用法相同

2.如果你的字符串不需要格式化,可以在你的<string 标签上增加一个属性:formatted="false"例如 <string name="test" formatted="false">% test %</string> 即可。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值