Por que esse BufferedReader não lê no formato UTF-8 especificado?
Estou copiando alguns sites e alguns deles contêm caracteres não latinos e caracteres especiais como“
para cotações em vez de"
e’
para apóstrofos em vez de'
.
Aqui está a bola curva real ...
Tenho o texto relevante impresso no console. Tudo codifica bem quando eu o executo no meu IDE (Netbeans). Mas quando eu o executo no meu computador“I Need Your Help”
é impresso como:ΓÇ£I Need Your HelpΓÇ¥
...
Antes que alguém diga que preciso definir meuJAVA_TOOL_OPTIONS
Variável de ambiente para-Dfile.encoding=UTF8
deixe-me dizer que já fiz isso e isso ainda é um problema. Além disso, eu não deveria especificar a codificação para o leitor em buffer"UTF-8"
substituir isso de qualquer maneira?
Aqui estão algumas informações:
Estou usando o JDK 7 com a plataforma de destino como 1.7 Estou executando em uma máquina com Windows 7 para todas as máquinas em que estou executando e com o mesmo problema (alguns não têm oJAVA_TOOL_OPTIONS
set, mas isso não parece fazer nenhuma diferença Acho que a codificação padrão usada é Cp1252 ...Aqui está o meu código. Deixe-me saber se você precisa de mais informações. Obrigado
/**
* Using the given url, this method creates and returns the buffered reader for that url
*
* @param urlString
* @return
* @throws MalformedURLException
* @throws IOException
*/
public synchronized static BufferedReader getBufferedReader(String urlString) throws MalformedURLException, IOException {
URL url = new URL(urlString);
InputStream is = url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
return br;
}