[英]How to escape the < and ≤ symbols in xml?
我想在 android 中創建一個字符串<res>
如下:
<string name="bmi0">0: BMI≤18.5</string>
<string name="bmi1">1: 18.5<BMI≤24</string>
<string name="bmi2">2: 24<BMI≤27</string>
但是我顯示了“標記啟動未關閉”的錯誤。
我試圖在前面放一個\\
符號,但它不起作用,它顯示了相同的錯誤。
<string name="bmi0">0: BMI\≤18.5</string>
<string name="bmi1">1: 18.5<BMI\≤24</string>
<string name="bmi2">2: 24<BMI\≤27</string>
如何轉義特殊的 XML 符號?
您必須按如下方式轉義這些符號:
<
將是<
>
將是>
≤
符號不需要轉義。
您必須為 XML 轉義這些符號。
如上所述,對於<
和>
,你可以使用這個:
< <
> >
您需要這樣做,因為<
和>
在 XML 中是不允許的,所以您需要對它們進行escape
。 你可以通過輸入: &
+ specific code for your character
+ ;
, 當您顯示此字符串時,這將被識別為特殊字符( <
或>
)。
您還需要smaller or equal
等號 (≤),這是 XML 中允許的,因此只需使用≤
。
這些是您必須轉義的字符:
" = "
' = '
< = <
> = >
& = &
使用這個:
< <
> >
使用
https://stackoverflow.com/a/4301267/2740014
轉義字符串,然后將它們放入您的 xml 中。
StringEscapeUtils.escapeXml(stringHere);
是我認為需要的東西。
使用 Unicode
對於<
使用\<
對於>
\>
和
對於≤
\≤
要獲取任何字符串的 unicode,請使用以下方法
public static String getUnicode(String input){
String output = "";
for(char c:input.toCharArray()){
output +="\\u" + Integer.toHexString(c|0x10000).substring(1) ;
}
return output;
}
Just my 2 cents: guava 15 引入了 Escapers,特別是對於這種情況:
Escaper escaper = XmlEscapers.xmlAttributeEscaper();
String result = escaper.escape("<>");
System.out.println(result); // <>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.