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.

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

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.

0

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

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

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.

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.

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.

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 :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1