Строковая кодификация в Twitter - PullRequest
0 голосов
/ 30 мая 2010

Я разрабатываю программу, которая отправляет твиты. У меня есть этот кусок кода:

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");

Но когда я отправляю твит, я получаю "?" символ или другие странные символы из-за акцентов, таких как «а». Я также пробовал только с

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

но проблема остается ...

1 Ответ

1 голос
/ 31 мая 2010

Вы пытаетесь читать Latin-1 как UTF-8. Вот почему вы получаете вопросительные знаки.

Попробуйте отправить строку как есть,

String encodedString = sb.toString();

При отправке сообщения в Твиттере должна быть осторожна кодировка. Если требуется кодировка URL, вы должны сделать что-то вроде

   String msg = URLEncoder.encode(encodedString, "UTF-8");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...