Kodowanie znaków w springu (pliki properties)

Kodowanie znaków w springu (pliki properties)
0

Czesc

Mam problem z plikami properties i kodowaniem znaków. Jak się dowiedziałem, pliki properties nie sa zapisane w UTF-8 i tu jest problem. Pytanie do was jak go można obejść?
Próbowałem pisania znaków ascii zamiast polskich znaków, ale to w sumie nie wiele pomogło (pomijając fakt, że jeśli tak mialbym pisac te propertiesy to już wole je trzymac w jsp/html niż tam). Niewiele pomogło, bo zadziałało dla litery ó a np. dla liter ł już nie.

Ustawiłem intellij zeby pliki properties zapisywał w utf-8 - nie zadziałało
Próbowałem skonfigurowac maven'owy plugin native2ascii - build przechodził, ale nie było żadnej różnicy na stronie, a ni w wygenerowanym pliku war.

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

A jestes pewien ze to tu leży problem? Bo przypuszczam że nie.
https://github.com/Pharisaeus/SpringScaffoldApplication
Popatrz na spring context i web.xml na konfiguracje kodowania


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0

Jestem pewien że to tam leży problem, bo wszędzie jest ustawiony UTF-8.
MessageSource ma klase ustawioną na ReloadableResourceBundleMessageSource, i ma wbite UTF-8. CharacterEncodingFilter jest dodany i ustawiony na utf-8 z force'em. Nawet w pomie wbiłem już UTF-8.

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Ale właściwie jakie są objawy tego? Że w properties masz polskie znaki a na stronie krzaki? Podrzuć gdzieś ten plik properties.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0

Dokladnie.

Wiele tam nie ma, dopiero zaczynam i są tam 4 wpisy
navigation.home=Strona główna
navigation.about=O mnie
navigation.blog=Blog
navigation.contact=Kontakt

do pobrania tutaj
https://www.dropbox.com/s/rg8xzy7qy49z5w0/messages_pl_PL.properties?dl=0

TK
  • Rejestracja:ponad 13 lat
  • Ostatnio:około miesiąc
  • Postów:342
0

Znaki z ogonkami możesz zapisywać w pliku properties za pomocą ich kodów.

Np. zamiast pisać:

Jakiś zbiór znaków

Mozesz napisać tak:

Jaki\u015B zbi\u00F3r znak\u00F3w

Aby ułatwić sobie proces konwersji do tej drugiej postaci polecam użyć jakiegoś konwertera, np takiego: http://www.rapidmonkey.com/unicodeconverter/

Być może sam proces konwersji da się zautomatyzować za pomocą jakiś mavenowych pluginów itd.

edytowany 3x, ostatnio: tk
0
tk napisał(a):

Znaki z ogonkami możesz zapisywać w pliku properties za pomocą ich kodów.

Np. zamiast pisać:

Jakiś zbiór znaków

Mozesz napisać tak:

Jaki\u015B zbi\u00F3r znak\u00F3w

Aby ułatwić sobie proces konwersji do tej drugiej postaci polecam użyć jakiegoś konwertera, np takiego: http://www.rapidmonkey.com/unicodeconverter/

Być może sam proces konwersji da się zautomatyzować za pomocą jakiś mavenowych pluginów itd.

Dzięki za sugestię, ale wpierwszym poście już pisałem:

Próbowałem pisania znaków ascii zamiast polskich znaków, ale to w sumie nie wiele pomogło (pomijając fakt, że jeśli tak mialbym pisac te propertiesy to już wole je trzymac w jsp/html niż tam). Niewiele pomogło, bo zadziałało dla litery ó a np. dla liter ł już nie.

TK
Rzeczywiscie, nie doczytalem. Propouje skasowac nasze posty zeby nie robic balaganu w watku.
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

@Loicram o_O?
file messages_pl_PL.properties
messages_pl_PL.properties: ASCII text, with CRLF line terminators
Jak się z tego wytłumaczysz? Ja zresztą w tym pliku widzę:

navigation.home=Strona g\u0142\u00F3wna
navigation.about=O mnie
navigation.blog=Blog
navigation.contact=Kontakt

Więc WTF że tak spytam ;] Weź sobie ten plik edytuj w notepad++ jakimś i zapisz go faktycznie jako UTF-8 bo póki co to jest WTF-8 najwyżej.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0

Sry, Intellij musiał coś odwalic ; )

Anyway, problem solved.
Błąd faktycznie leżał gdzie indziej.

A więc używam Thymeleaf, i należy ustawić kodowanie znaków dla ThymeleafViewResolver i dla ServletContextTemplateResolver. I wszystko działa

ps. a propertiesy już są w utf, dzięki za zwrócenie uwagi :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.