相关疑难解决方法(0)

Java相当于生成相同输出的JavaScript的encodeURIComponent?

我一直在试验各种Java代码试图想出一些东西,它将编码一个包含引号,空格和"奇异"Unicode字符的字符串,并产生与JavaScript的encodeURIComponent函数相同的输出.

我的折磨测试字符串是:"A"B±"

如果我在Firebug中输入以下JavaScript语句:

encodeURIComponent('"A" B ± "');
Run Code Online (Sandbox Code Playgroud)

- 然后我得到:

"%22A%22%20B%20%C2%B1%20%22"
Run Code Online (Sandbox Code Playgroud)

这是我的小测试Java程序:

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class EncodingTest
{
  public static void main(String[] args) throws UnsupportedEncodingException
  {
    String s = "\"A\" B ± \"";
    System.out.println("URLEncoder.encode returns "
      + URLEncoder.encode(s, "UTF-8"));

    System.out.println("getBytes returns "
      + new String(s.getBytes("UTF-8"), "ISO-8859-1"));
  }
}
Run Code Online (Sandbox Code Playgroud)

- 该计划输出:

URLEncoder.encode returns %22A%22+B+%C2%B1+%22
getBytes returns "A" B ± "

关闭,但没有雪茄!使用Java编码UTF-8字符串的最佳方法是什么,以便它产生与JavaScript相同的输出encodeURIComponent

编辑:我很快就使用Java 1.4迁移到Java 5.

javascript java unicode utf-8

84
推荐指数
5
解决办法
11万
查看次数

标签 统计

java ×1

javascript ×1

unicode ×1

utf-8 ×1