Kodowanie plików CSV (UTF-8 czy inny)

Odpowiedz Nowy wątek
2015-02-14 17:52
Krzywy Terrorysta
0

Hey, czy ktoś się orientuje czy da się w jakiś prosty sposób sprawdzić w jaki sposób jest kodowana treść w danym pliku CSV (excel)?
Chodzi o to by ustalić czy jest to windows-coś tam, czy UTF-8 czy Ansi czy jeszcze coś innego?
Z góry dziękuję za pomoc!

Pozostało 580 znaków

2015-02-14 19:43
zz
0

Jeśli to na Windows, to otwórz w Notatniku i zrób "Zapisz jako". Pokazuje się tam UTF-8, ANSI.
Jeśli to Linux, to użyj hexdump i wszystko jasne. :)

Zamiast hd lepiej użyć enca. Łatwiej zanalizować wynik. - hauleth 2015-02-15 13:57

Pozostało 580 znaków

2015-02-14 19:55
Krzywy Samiec
0
zz napisał(a):

Jeśli to na Windows

Tak, chodzi o windows.

zz napisał(a):

otwórz w Notatniku i zrób "Zapisz jako". Pokazuje się tam UTF-8, ANSI.

Ale czy na pewno to jest kodowanie obecnego pliku czy może domyślne kodowanie przy zapisywaniu? Bo mam małą wątpliwość...
Jak otworzę plik w excelu i zrobię zapisz jako to również mam możliwość takiego podglądu (bodajże w narzędziach(?)).

Mam jeszcze jedno pytanie: jeśli plik jest zapisany np. w ANSI, albo jakimś windowsowskim stylu to czy jeśli będę próbował go odczytać i zapisać programem, który czyta UTF-8 to czy będzie wszystko ok? Bo zdaje się UTF-8 jest uniwersalny (?!?)

pozdrawiam.

Pozostało 580 znaków

2015-02-18 09:28
0

Jeśli to na Windows, to otwórz w Notatniku i zrób "Zapisz jako". Pokazuje się tam UTF-8, ANSI.

Ale to wykryje UTF-8 tylko, jeżeli w pliku jest BOM.

Ważna rzecz - w teorii nie da się w 100% poprawnością wykryć kodowania. Kodowanie musi być określone, bo określone znaki są POPRAWNE niezależnie od kodowania (no, prawie, w UTF-ach nie muszą z tego co kojarzę (nigdy bliżej nie interesowałem się sposobem zapisu wielobajtowym)). Są one inne z Twoimi osobistymi oczekiwaniami, ale są poprawne.

Poniższy tekst zakłada, że chcesz to robić automatycznie w jakimś programie:
Jeżeli wiesz, że oczekujesz akurat POLSKICH znaków - wtedy po prostu szukasz znaków o określonych kodach (ó jest np. takie samo dla ISO-8859-2 i Windows-1250/CP-1250, ale ąśź są bardzo charakterystyczne). Gorzej z UTF-8 bez BOM (bo BOM łatwo sprawdzić, ale wiele programów będzie miało z tym problem) - wtedy znaki mogą być zarówno jednobajtowe jak i dwubajtowe - trzeba by było znowu poszukać charakterystycznych zestawów bajtów. Raczej w CSV-ce nie będziesz oczekiwał takich bajtów w ISO/Win, które w UTF składałyby się na jeden znak.
W Google w sumie nie brakuje gotowych bibliotek do takich zastosowań - "detect encoding nazwa_języka" i znajdziesz.


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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