• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Properties problem z wczytywaniem kluczy z polskimi znakami

VPS Starter Arubacloud
0 głosów
654 wizyt
pytanie zadane 8 kwietnia 2019 w Java przez antek782 Początkujący (490 p.)

Witam,
Wczytuję wartości z kluczy z pliku z rozszerzeniem properties w taki sposób:

  {
    Properties properties = new Properties();
    FileInputStream in = new FileInputStream("my.properites");
    properties.load(in);
    String nazwaGry = properties.getProperty("nazwaGry");
    String liczbaPoziomów = properties.getProperty("liczbaPoziomów=4");
    String nazwaBazowaPlikuZOpisemPoziomu = properties.getProperty("nazwaBazowaPlikuZOpisemPoziomu");
    String numeracjaPoziomówZaczynaSięOd = properties.getProperty("numeracjaPoziomówZaczynaSięOd");
    String rozszerzeniePlikuZOpisemPoziomu = properties.getProperty("rozszerzeniePlikuZOpisemPoziomu");
    String liczbaStopniTrudności = properties.getProperty("liczbaStopniTrudności");
    String zmianaStopniaTrudności = properties.getProperty("zmianaStopniaTrudności");
    String początkowaSzerokośćPlanszy = properties.getProperty("początkowaSzerokośćPlanszy");
    String początkowaWysokośćPlanszy = properties.getProperty("początkowaWysokośćPlanszy");
    String początkowaSzerokośćObiektuGryJakoProcentPoczątkowejSzerokościPlanszy = properties.getProperty("początkowaSzerokośćObiektuGryJakoProcentPoczątkowejSzerokościPlanszy");
    String tło = properties.getProperty("tło");
    String klorTła = properties.getProperty("klorTła");
    String obiektyGry = properties.getProperty("obiektyGry");
    String plikObiektu = properties.getProperty("plikObiektu");
    System.out.println(klorTła);
    }

Gdy chcę odczytać wartość zmiennej np. liczbaStopniTrudności, klorTła to zwracany jest null
Gdy odczytuję wartość zmiennej np. nazwaGry, liczbaPoziomów to wszystko jest w porządku
Zauważyłem że null jest przy kluczach, gdy w ich nazwach jest np. litera ł lub ś
Co zrobić żeby nie zwracało null przy tych kluczach?

1
komentarz 8 kwietnia 2019 przez mrspock1 Mądrala (6,420 p.)
Chyba trzeba wcześniej ustawić domyślne kodowanie dla FileStream na unicode (może coś takiego jak DefaultEncoding). Wtedy powinien być zapis i odczyt robiony prawidłowo.
komentarz 8 kwietnia 2019 przez mbabane Szeryf (79,300 p.)

@antek782,

Czy nie lepiej pisać kod bez polskich znaków lub najlepiej po ang?

Jak coś to w propertisach stosuje się notacje z kropkami, np.:

game.name=MyGame

 

1 odpowiedź

0 głosów
odpowiedź 9 kwietnia 2019 przez Arkadiusz Fajdek Dyskutant (9,450 p.)

Ustaw kodowanie:

properties.load(new InputStreamReader(in, Charset.forName("UTF-8")));

 

Podobne pytania

0 głosów
2 odpowiedzi 669 wizyt
pytanie zadane 3 grudnia 2018 w Nasze poradniki przez Shuri_PL Początkujący (290 p.)
0 głosów
0 odpowiedzi 437 wizyt

92,839 zapytań

141,780 odpowiedzi

320,848 komentarzy

62,171 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...