java或eclipse utf8编码不正确

标签 java eclipse encoding utf-8

我正在尝试使用 Java 和 Eclipse 通过 http post 发送一些 utf8 数据。 无论我如何尝试,脚本都会发送错误的 utf8 代码! 例如,我尝试发送希腊字符: “κ”,在 utf8 中是 %CE%BA,另一方收到 %C2%BA,即“º”。 我已经尝试了一切都无济于事,搜索了同样的结果,有人可以帮助我吗?

这是我的代码的最新版本:

         //trans = URLEncoder.encode(trans,"UTF8");

    String urlParameters =  "reply=1&message=" + trans + "%CE%BA%CE%B1%CE%BB%CE%AD%CF%83%CF%84%CE%B5%20%CF%83%CF%84%CE%BF%20%CE%A0%CE%B1%CF%81%CE%AF%CF%83%CE%B9%CF%80%CE%BF%CE%B4%CE%B9%CE%B1";
    System.out.println(urlParameters);
    URL url = new URL("https://posttestserver.com/post.php");
    //URLConnection conn = url.openConnection();
    //conn.setDoOutput(true);


    //////////////////////////
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();           
    connection.setDoOutput(true);
    connection.setDoInput(true);
    connection.setInstanceFollowRedirects(false); 
    connection.setRequestMethod("POST"); 
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
    //connection.setRequestProperty("charset", "ascii");
    connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length));
    connection.setUseCaches (false);



    DataOutputStream wr = new DataOutputStream(connection.getOutputStream ());
    wr.write(urlParameters.getBytes("UTF8"));
    wr.flush();
    wr.close();
    connection.disconnect();

我在很多情况下尝试过编码,因此注释掉了部分......

我不知道发生了什么:(如果我对我的字符串执行以下操作:

        byte[] transc = trans.getBytes("UTF-8");


    for(int i=0;i < trans.length(); i=i+1){
    System.out.println(trans.codePointAt(i));
    System.out.println(transc[i]);
    }

我在 Eclipse 控制台上得到以下输出: 第954章 -50 第945章 -70 第955章 -50 第941章 -79 第963章 -50 第964章 -69 949 -50 32 -83 第963章 -49 第964章 -125 第959章 -49 32 -124 928 -50 第945章 -75 961 32 第943章 -49 第963章 -125 第953章 -49

剧情越来越复杂了!如果我将字符串作为 POST 正文的一部分发送,一切都很好。如果我将它作为 POST 的参数发送,它就会变得困惑。我问我的客户是否可以改变它以在体内接受它,但如果他们不这样做......这里发生了什么??? 请帮忙,这个问题已经困扰我两周了......

最佳答案

我认为问题不在于发送者,而在于接收者。哪个字符集使用接收器解码参数?

您可以通过服务器中的简单行知道:

System.getProperty("file.encoding");

关于java或eclipse utf8编码不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17801323/

相关文章:

c# - 如何正确提供 PDF 文件

java - 使用哪个 JMS 客户端库?

java - 使用 Executor 和 WebSocket 的多线程

java - 是否可以在eclipse中有一个java程序来编译java以外的其他语言?

python - 读取带有德语字符的 json 文件 python 2 (ironpython)

java - Java 程序为 VB 应用程序生成的文件的编码问题

java - Ftp 下载的文件大小为 0 KB

java - 使用 Java 中的 Customsearch 搜索恰好包含两个给定字符串的页面

java - eclipse RCP : check if a job has finished

java - 强制 eclipse 忽略 "COUNTRY_ISO cannot be resolved or is not a field' 错误并编译