在Java中,我想将其转换为:
https%3A%2F%2Fmywebsite%2Fdocs%2Fenglish%2Fsite%2Fmybook.do%3Frequest_type
对此:
https://mywebsite/docs/english/site/mybook.do&request_type
这是我到目前为止的内容:
class StringUTF
{
public static void main(String[] args)
{
try{
String url =
"https%3A%2F%2Fmywebsite%2Fdocs%2Fenglish%2Fsite%2Fmybook.do" +
"%3Frequest_type%3D%26type%3Dprivate";
System.out.println(url+"Hello World!------->" +
new String(url.getBytes("UTF-8"),"ASCII"));
}
catch(Exception E){
}
}
}
但这行不通。这些%3A
和%2F
格式分别是什么?如何转换它们?
@Stephen ..为什么不能将URL用UTF-8编码的String ..?
—
Crackerplace,2011年
问题在于,仅因为URL可以是UTF-8,所以问题实际上与UTF-8 无关。我已经适当地编辑了问题。
—
克里斯·杰斯特·杨
从理论上讲可能是,但是示例中的字符串不是UTF-8编码的字符串。这是一个URL编码的ASCII字符串。因此,标题具有误导性。
—
斯蒂芬·C
还值得注意的是,
—
斯蒂芬·C
url
字符串中的所有字符都是ASCII,并且在对字符串进行URL解码之后也是如此。 '%'
是ASCII字符,%xx
如果xx
小于(十六进制),则表示ASCII字符80
。