使用Java编码问题

时间:2014-01-31 13:21:35

标签: java encoding utf-8

如何让字符串Стек看起来像%D0%A1%D1%82%D0%B5%D0%BA?它是哪种编码?我怎么能用Java做到这一点?我以为是UTF-8

 String myString = "Стек";
 byte text[] = myString.getBytes();
 String value = new String(text, "UTF-8");
 System.out.println(value);

但不,我的输出中有Стек

3 个答案:

答案 0 :(得分:2)

您可以使用URLEncoder类将String转换为百分比编码:

import java.net.URLEncoder;

System.out.println(URLEncoder.encode("Стек", "utf-8"));

您还需要抓住UnsupportedEncodingException

答案 1 :(得分:2)

它不是UTF-8,它是类似URL的编码,您可以使用URLEncoder类来获取它:

String encoded = URLEncoder.encode("Стек");
System.out.println(encoded);

结果:

%D0%A1%D1%82%D0%B5%D0%BA

IDEOne working example

答案 2 :(得分:2)

您展示的文字是Percent encoded或网址编码。

您可以使用URLEncoder将其转换为所需的格式:

String value = URLEncoder.encode("Стек", "ISO-8859-1");