Forum Linux.pl

Programowanie => Java => Wątek zaczęty przez: Panas w 2017-12-01, 00:16:45

Tytuł: Java kodowanie UTF8
Wiadomość wysłana przez: Panas w 2017-12-01, 00:16:45
Mam problem z początkiem z java podstawy wydanie IX.
W części 2.5 powinienem odpalić obraz ale wyskakuje błąd z kodowaniem.
Jak to naprawić?
Próbowałem przez javac -encoding UTF-8 plik.java  aleto nie działa.

Cytuj
~/JavaPodstawy/t1/r02/ImageViewer$ javac ImageViewer.java
ImageViewer.java:7: error: unmappable character for encoding UTF8
 * Program do przegl�dania obraz�w.
                    ^
ImageViewer.java:7: error: unmappable character for encoding UTF8
 * Program do przegl�dania obraz�w.
                                ^
ImageViewer.java:28: error: unmappable character for encoding UTF8
 * Ramka z etykiet� wy�wietlaj�ca obraz.
                  ^
ImageViewer.java:28: error: unmappable character for encoding UTF8
 * Ramka z etykiet� wy�wietlaj�ca obraz.
                      ^
ImageViewer.java:28: error: unmappable character for encoding UTF8
 * Ramka z etykiet� wy�wietlaj�ca obraz.
                              ^
ImageViewer.java:37: error: unmappable character for encoding UTF8
      // U�ycie etykiety do wy�wietlenia obraz�w.
          ^
ImageViewer.java:37: error: unmappable character for encoding UTF8
      // U�ycie etykiety do wy�wietlenia obraz�w.
                              ^
ImageViewer.java:37: error: unmappable character for encoding UTF8
      // U�ycie etykiety do wy�wietlenia obraz�w.
                                              ^
ImageViewer.java:51: error: unmappable character for encoding UTF8
      JMenuItem openItem = new JMenuItem("Otw�rz");
                                             ^
ImageViewer.java:57: error: unmappable character for encoding UTF8
               // Wy�wietlenie okna dialogowego wyboru pliku.
                    ^
ImageViewer.java:60: error: unmappable character for encoding UTF8
               // Je�li plik zosta� wybrany, ustawiamy go jako ikon� etykiety.
                    ^
ImageViewer.java:60: error: unmappable character for encoding UTF8
               // Je�li plik zosta� wybrany, ustawiamy go jako ikon� etykiety.
                                  ^
ImageViewer.java:60: error: unmappable character for encoding UTF8
               // Je�li plik zosta� wybrany, ustawiamy go jako ikon� etykiety.
                                                                   ^
ImageViewer.java:69: error: unmappable character for encoding UTF8
      JMenuItem exitItem = new JMenuItem("Zako�cz");
                                              ^
14 errors
Tytuł: Odp: Java kodowanie UTF8
Wiadomość wysłana przez: Paweł Kraszewski w 2017-12-01, 05:38:11
Pewnie dlatego, że przykłady z książki są zapisane w CP1250 dla windowsiarzy...
Tytuł: Odp: Java kodowanie UTF8
Wiadomość wysłana przez: Panas w 2017-12-01, 12:44:01
Tego się domyśliłem ale jak zmienić kodowanie wszystkich plików? Bez zmieniania tego ręcznie przy każdym pliku?
Ten skrypt wystarczy?
http://lekka.cba.pl/software/ubuntu/linux_bash_converts_cp1250_to_utf8.htm
Tytuł: Odp: Java kodowanie UTF8
Wiadomość wysłana przez: Paweł Kraszewski w 2017-12-01, 15:28:08
Cytuj
Ten skrypt wystarczy?

Łatwiej zainstalować recode i:
$> recode cp1250..utf8 *.java
Tytuł: Odp: Java kodowanie UTF8
Wiadomość wysłana przez: Panas w 2017-12-02, 19:48:04
recode i  iconv zapoznane ale teraz sypie mi błędem  którego nie rozumiem.
Cytuj
error: cannot find symbol
      setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
              ^
  symbol:   variable DEFAULT_WIDTH
  location: class ImageViewerFrame
ImageViewer.java:35: error: cannot find symbol
      setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
                             ^
  symbol:   variable DEFAULT_HEIGHT
  location: class ImageViewerFrame
ImageViewer.java:38: error: cannot find symbol
      label = new JLabel();
      ^
  symbol:   variable label
  location: class ImageViewerFrame
ImageViewer.java:39: error: cannot find symbol
      add(label);
          ^
  symbol:   variable label
  location: class ImageViewerFrame
ImageViewer.java:42: error: cannot find symbol
      chooser = new JFileChooser();
      ^
  symbol:   variable chooser
  location: class ImageViewerFrame
ImageViewer.java:43: error: cannot find symbol
      chooser.setCurrentDirectory(new File("."));
      ^
  symbol:   variable chooser
  location: class ImageViewerFrame
ImageViewer.java:58: error: cannot find symbol
               int result = chooser.showOpenDialog(null);
                            ^
  symbol: variable chooser
ImageViewer.java:63: error: cannot find symbol
                  String name = chooser.getSelectedFile().getPath();
                                ^
  symbol: variable chooser
ImageViewer.java:64: error: cannot find symbol
                  label.setIcon(new ImageIcon(name));
                  ^
  symbol: variable label
9 errors
s:~/JavaPodstawy/t1/r02/ImageViewer$ java ImageViewer
Exception in thread "main" java.lang.NoClassDefFoundError: ImageViewerFrame
   at ImageViewer.main(ImageViewer.java:15)
Caused by: java.lang.ClassNotFoundException: ImageViewerFrame
   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
   ... 1 more
:~/JavaPodstawy/t1/r02/ImageViewer$ java ImageViewer
Exception in thread "main" java.lang.NoClassDefFoundError: ImageViewerFrame
   at ImageViewer.main(ImageViewer.java:15)
Caused by: java.lang.ClassNotFoundException: ImageViewerFrame
   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
   ... 1 more
Tytuł: Odp: Java kodowanie UTF8
Wiadomość wysłana przez: Paweł Kraszewski w 2017-12-02, 22:57:20
Nie jesteś pierwszy (https://4programmers.net/Forum/Java/245203-ksiazka_java_podstawy_ix_). Zastosuj się do postu Yo Yo na drugiej stronie wątku.

Hint: nie kupuj polskich książek informatycznych. Często są do tyłu o 2-3 wydania do oryginału, bardzo często masakrycznie przetłumaczone i bardzo często są takie kwiatki jak tutaj, ze skopanymi kodami źródłowymi. Warto poczekać na Black Friday albo inne święto zniżkowe (wydawnictwa IT mają parę "świąt" w roku - jakieś sysadmin day, 256 dzień roku i takie tam.) i kupić wersję oryginalną. Akurat książki IT korzystają z "inglisz" przyjaznego użytkownikom, i nawet średnia znajomość języka wystarczy do ogarnięcia. Dodatkowo, prawie wszystkie zachodnie duże wydawnictwa mają tak, że jak kupujesz w papierze, to albo za darmo (np. Manning czy NoStarch) albo za niewielką dopłatą rzędu $5-$10 dostajesz komplet e-booków bez DRM (MOBI+EPUB+PDF).

Co do przedawnienia książki - CoreJava wydanie 9 jest z 2012 roku, wydanie 10 z 2016 roku. Drobna różnica 4 lat rozwoju języka.

Aktualne wydanie papierowe w promocji na Amazonie (http://a.co/8tXmsfL) kosztuje niecałe $30, po dzisiejszym kursie chcą 140zł za całość z przesyłką. Polski przestarzały ebook kosztuje 99zł... Tyle w temacie.

Bezpośrednio u wydawcy (http://www.informit.com/store/core-java-volume-i-fundamentals-9780134177304) jest teraz dużo drożej - $65 za zestaw papier+3 formaty elektroniczne + $25 za wysyłkę, ale trafiają się mega zniżki sezonowe.
Tytuł: Odp: Java kodowanie UTF8
Wiadomość wysłana przez: Panas w 2017-12-02, 23:13:43
Własnie doszedłem do tego, kod ze źródła działa, helion ftp spaprał.
Dziękuję za zainteresowanie tematem.