GWT:在字符串中编码`'`字符

时间:2015-08-06 07:33:25

标签: java gwt character-encoding

我需要对ASCII字符串.container { height: 48px; width: 80%; background-color: #999; margin: 0 auto; overflow: auto; } .left { margin-left: 6px; height: 40px; background-color: red; margin-top: 4px; float: left; overflow: hidden; width: 30%; } .middle { margin-left: calc(30% + 12px); height: 40px; background-color: green; margin-top: 4px; overflow: hidden; width: auto; } .right { margin-left: 6px; height: 40px; background-color: blue; margin-top: 4px; margin-right: 6px; float: right; overflow: hidden; width: 40%; } .button { float: right; margin-right: 6px; height: 32px; width: 100px; border-style: solid; border-width: 1px; margin-top: 4px; border-color: #333; } p { color: blue; overflow: hidden; width: 50%; }进行编码的方式对字符串进行编码。当我们不使用gwt时,它看起来像

<div class="container"> <div class="right"> <button class="button">Search</button> </div> <div class="left"></div> <div class="middle"></div> </div>

它完全符合我的预期。

我在gwt中看到这个question关于URLEncoder的等价物。但根据文档,ASCII标点字符

'

不会被方法URLEncoder.encode(string, "UTF-8");转义。

对字符串进行编码的正确方法是什么,以便所有- _ . ! ~ * ' ( )都会被编码?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果您只使用ASCII字符,则会对所有字符进行编码:

String string = "asc<>&-_()'";
String encoded = "";
for(int i = 0; i < string.length(); i++) {
    char c = string.charAt(i);
    encoded+= "&#x" + Integer.toHexString(Character.valueOf(c)) + ";";
}

输出结果为:

&#x61;&#x73;&#x63;&#x3c;&#x3e;&#x26;&#x2d;&#x5f;&#x28;&#x29;&#x27;