Zmiana kodowania pliku

Zmiana kodowania pliku
0

Mam taki problem, otóż dostaję na wejście plik, który zaczytuje do pamięci. Dla każdego wiersza robię pewnie operacje porównujące stringi, ale zauważyłem że przy zmianie kodowania pliku te operacje nie działają (działają tylko gdy plik jest zakodowany w ANSI). Jak obejść ten problem??

0

Nie wiem co rozumiesz przez "zmiane kodowanie pliku", ale rozwiazanie jest calkiem proste - plik musisz wczytywac zawsze w kodowaniu w jakim zostal zapisany.

lipkerson
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 2 lata
0

Kodowanie znaków w javie to utf-8. Utf ma to do siebie że pierwsze 128 znaków (niejestem pewny co do extended ASCII) jest takie same jak dla ASCII czy każdej innej strony kodowej dlatego to Ci działa. Jeżeli natomiast masz już inne kodowanie i w nim wystepują znaki 128+ to Ci to nie zadziała. Wniosek jest taki - albo nie używaj znaków 128+ albo wczytujac bajty z pliku konvertuj je na utf-8 i wtedy porównuj.


Another jam from the world for the jam from the voices of the world......
0

Java wewnetrznie uzywa kodowania UTF16 od baardzo dawna. A co do kodowania ktore uzywane jest do wczytania plikow itp, to zalezy od platformy. UTF8 jest domyslnie pod linuksem, ale pod win jest to (u nas) cp1252 czy costam. Nie wprowadzaj w blad.

lipkerson
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 2 lata
0

pod windą też jest utf-8...stworzysz sobie w wordpadzie plik z kodowaniem cp1250...dasz kilka polskich znaków i jak zaczniesz ładować ten plik to javy to Ci wyjdą szlaczki. Chyba że zaznaczysz by pobierać bajty mapowane z cp1250...nieprawda?


Another jam from the world for the jam from the voices of the world......
edytowany 1x, ostatnio: lipkerson
0

dzięki wielkie za pomoc, we wczytywanych rekordach z pliku usuwam wszystkie znaki które nie są zgodne z UTF-8 i teraz działa:)

0

@lipkerson: prawde nie wiem o czym do mnie mowisz.

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.