处理输出编码与Java.io编码不同?

处理输出编码与Java.io编码不同?,java,encoding,processing,Java,Encoding,Processing,我没有java经验,我刚刚开始尝试处理 我正在尝试在processing中编写一个脚本,它将使用HTTPPOST命令向web服务器发送一个512字节的数组。这一切都很好(多亏了我在互联网上找到的代码!)但我在编码方面遇到了一些问题。我正在创建一个用0xFF填充的字符数组。这将在输出窗口中打印为512个“ÿ”字符。问题是HTTPScoop将post十六进制显示为一系列0xD8字符或“Ø”字符。我不确定为什么控制台正在打印一个字符,而输出流似乎正在发送另一个字符 代码如下: import java.

我没有java经验,我刚刚开始尝试处理

我正在尝试在processing中编写一个脚本,它将使用HTTPPOST命令向web服务器发送一个512字节的数组。这一切都很好(多亏了我在互联网上找到的代码!)但我在编码方面遇到了一些问题。我正在创建一个用0xFF填充的字符数组。这将在输出窗口中打印为512个“ÿ”字符。问题是HTTPScoop将post十六进制显示为一系列0xD8字符或“Ø”字符。我不确定为什么控制台正在打印一个字符,而输出流似乎正在发送另一个字符

代码如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

public static void main(String[] args) {
    try {
    // Construct data
    char[] anArray = new char[512];
    char charFillValue = 0xFF;
    Arrays.fill(anArray, charFillValue);

    String str = new String(anArray);
    println(str);

    String data = str;
    println(data);

    // Send data
    URL url = new URL("http://10.10.155.120:8081/set.cgi?dst=p1");
    URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    wr.write(data);
    wr.flush();

    // Get the response
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    while ((line = rd.readLine()) != null) {
        System.out.println(line);
    }
    wr.close();
    rd.close();
} catch (Exception e) {
} 
}

任何帮助都将不胜感激

基本问题似乎是Java的默认编码和服务器的编码不匹配。在
OutputStreamWriter
中设置编码。例如,使用构造函数。

捕获(异常E){}
不要忽略断开代码中的异常!这应该是
catch(异常e){e.printStackTrace();}
。(这不是直接的问题,但无论如何都要解决。)谢谢Andrew,例外不再被忽略!(以上片段目前没有例外)。太棒了!它看起来像是ISO编码!谢谢你的帮助!新代码是:OutputStreamWriter wr=新的OutputStreamWriter(conn.getOutputStream(),“ISO8859_1”);