字符串编码到Twitter

时间:2010-05-30 17:45:11

标签: encoding character-encoding twitter

我正在开发一个发送推文的程序。 我有这段代码:

StringBuilder sb = new StringBuilder("Recomendo ");
    sb.append(lblName.getText());
    sb.append(" no canal "+lblCanal.getText());

    sb.append(" no dia "+date[2]+"/"+date[1]+"/"+date[0]);
    sb.append(" às "+time[0]+"h"+time[1]);

    byte[] defaultStrBytes = sb.toString().getBytes("ISO-8859-1");
    String encodedString = new String(defaultStrBytes, "UTF-8");

但是当我把它发送到推文时,我得到了“?”符号或其他strage字符,因为像“à”这样的重音符号。我也只尝试过

String encodedString = new String(sb.toString().getBytes(), "UTF-8"); //also tried with ISO-8859-1

但问题仍然存在......

1 个答案:

答案 0 :(得分:1)

您正在尝试将Latin-1读作UTF-8。这就是你得到问号的原因。

尝试按原样发​​送字符串,

String encodedString = sb.toString();

当您向Tweet发送消息时,charset应该小心。如果需要URL编码,您可以执行类似

的操作
   String msg = URLEncoder.encode(encodedString, "UTF-8");