我正在开发一个发送推文的程序。 我有这段代码:
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
但问题仍然存在......
答案 0 :(得分:1)
您正在尝试将Latin-1读作UTF-8。这就是你得到问号的原因。
尝试按原样发送字符串,
String encodedString = sb.toString();
当您向Tweet发送消息时,charset应该小心。如果需要URL编码,您可以执行类似
的操作 String msg = URLEncoder.encode(encodedString, "UTF-8");