2016-02-05 13 views
8

To wydaje się być naprawdę szalone, ale nie mogę zrobić nic z uszkodzonym kodowaniem w konsoli mojego pomysłu intellij.Intellij Idea niepoprawne kodowanie w wyjściu konsoli

Czego się przezwyciężyć to:

  1. zestaw -Dfile.encoding = UTF-8 i -Dfile.encoding = UTF-8 w obu idea.exe.vmoptions i idea64.exe.vmoptions (I użyj jednak wersji 64-bitowej).
  2. Dodano -Dfile.encoding = UTF-8 i -Dfile.encoding = UTF-8 do uruchomienia/debugowania konfiguracji mojej aplikacji.
  3. Zmiana ustawień> Edytor> Kodowanie plików Kodowanie IDE/Kodowanie projektu/Domyślne kodowanie plików właściwości do UTF-8.

Po wykonaniu wszystkich czynności nadal nie ma szczęścia i symbole nie są wyświetlane poprawnie na konsoli. Próbowałem debugować metodę java.io.PrintStream # println (java.lang.String) i odkryłem, że System.out.textOut.out.se.cs jest równy systemowi Windows-1251. Nie mam pojęcia, skąd bierze się ta wartość.

Ten problem przeszkadza mi od dłuższego czasu i nie mogłem znaleźć niczego w Internecie, które mogłoby mi pomóc.

Z góry dziękuję za pomoc.

+0

Proszę podać kod: http://stackoverflow.com/help/mcve –

+0

'System.out.println (" \ u0394 ");' drukuje [grecką deltę znaku] (http://unicode-table.com/en/0394 /), Δ. Co to dla ciebie wydrukuje? –

+0

@JakeHendy Przepraszamy za opóźnioną odpowiedź. Wynikiem 'System.out.println (" \ u0394 ");' jest '?'. –

Odpowiedz

4

spróbować

-Dconsole.encoding=UTF-8 

zamiast

-Dfile.encoding=UTF-8 
+0

Dzięki! To mi się udało – Chris

+0

Działa w opcji tomcat vm. Dzięki! – traeper

2

Moja teoria jest taka, że ​​plik klasy java używasz "windows-1251" kodowania, i trzeba go ustawić "UTF-8".

wygląda na zrzuty ekranu poniżej. enter image description here enter image description here

aby zresetować wszystkie kodowanie plików, można ręcznie edytować encodings.xml. enter image description here Możesz zmienić domyślne kodowanie plików w oknie dialogowym ustawień. enter image description here

+0

Dziękuję za twój wkład, ale mój problem był trochę inny. –

0

W moim przypadku rozpatrywania System.out.textOut.out.se.cs w debugowania zrozumienia tej idei picked up maven surefire arguments dla każdego JUnit Run Configuration:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
     <!-- force 7-bit default encoding to ensure that nothing depends on it --> 
     <argLine>-Dfile.encoding=ASCII</argLine> 
    </configuration> 
</plugin> 

Mam rozwiązane to dodając -Didea.maven.surefire.disable.argLine=true do idea64.exe.vmoptions pliku.

Patrz także https://www.jetbrains.com/help/idea/configuring-output-encoding.html.