Я очищаю несколько веб-сайтов, и некоторые из них содержат нелатинские символы и специальные символы, такие как “
для кавычек, а не "
и ’
для апострофов, а не '
.
Вот настоящий изогнутый шарик ...
У меня соответствующий текст распечатан на консоли. Все хорошо кодируется, когда я запускаю его в своей среде IDE (Netbeans). Но когда я запускаю его на моем компьютере, “I Need Your Help”
распечатывается как: ΓÇ£I Need Your HelpΓÇ¥
...
Прежде чем кто-либо скажет, что мне нужно установить для JAVA_TOOL_OPTIONS
Переменная среды значение -Dfile.encoding=UTF8
, позвольте мне сказать, что я уже сделал это, и это все еще проблема. Кроме того, разве я не должен указывать кодировку для буферизованного считывателя как "UTF-8"
, переопределяющую это?
Вот некоторая информация:
- Я использую JDK 7 с целевой платформой как 1.7
- Я работаю на машине с Windows 7 для всех машин, на которых я работаю, и испытываю ту же проблему (у некоторых нет установленного
JAVA_TOOL_OPTIONS
, но, похоже, это не имеет значения) .
- Я думаю, что используемая кодировка по умолчанию - Cp1252 ...
Вот мой код. Дайте мне знать, нужна ли вам дополнительная информация. Спасибо!
/**
* 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;
}