Mam plik TXT:
$ file -i x.txt
x.txt: text/plain; charset=unknown-8bit
$ file x.txt
x.txt: Non-ISO extended-ASCII text, with CRLF line terminators
I niektóre znaki są niepoprawnie zakodowane:
trwa³y, sta³y, usuwaæ
Jak mogę zmienić kodowanie tego pliku na UTF-8? Do tej pory wypróbowałem następującą metodę:
$ iconv -f ASCII -t UTF-8 x.txt
puiconv: illegal input sequence at position 4
Może powinienem w jakiś sposób użyć extended ASCII
( high ASCII
), ale nie mogę go znaleźć na iconv
liście kodowania.
character-encoding
text
Patryk
źródło
źródło
iconv -f windows-1252 -t utf-8 file
Odpowiedzi:
file
mówi „tekst bez rozszerzenia ISO-ASCII”, ponieważ wykrywa, że jest to:Musisz dowiedzieć się, w jakim kodowaniu znajduje się ten plik. Możesz wypróbować automatyczne rozpoznawanie Enca . Może być konieczne popchnięcie go we właściwym kierunku, mówiąc w jakim języku jest tekst.
Aby przekonwertować plik, przekaż
-x
opcję:enca -L polish x.txt -x utf8 >x.utf8.txt
Jeśli nie możesz lub nie chcesz używać Enca, możesz odgadnąć kodowanie ręcznie. Trochę rozejrzenia się powiedziało mi, że to jest tekst polski, a słowa są trwałe, stałe, usuwać, więc szukamy tłumaczenia gdzie
³
→ł
iæ
→ż
. Wygląda na to, że latin-2 lub latin-10 lub więcej (biorąc pod uwagę „non-ISO” CP1250, który przeglądasz jako latin1 . Aby przekonwertować plik na UTF-8, możesz użyć recode lub iconv .źródło
< x.txt > x.utf8.txt
Dlaczego,<
a następnie>
? Jak to działa?<
i>
wykonywać wejście i wyjście przekierowanie odpowiednio .Otwórz plik tekstowy za pomocą gedit, aw oknie dialogowym „zapisz jako…” zobaczysz aktualne kodowanie.
źródło
Czy próbowałeś dowiedzieć się, jakie dokładne kodowanie to x.txt? Otrzymasz listę obsługiwanych kodowań z
Czasami zdarza mi się, że dostaję niezgodność między latin1 i utf8. Następnie często pomaga przekonwertować go z utf8 i odwrotnie.
źródło
Utworzyłem skrypt automatycznej konwersji za pomocą biblioteki enca , używam go na moim serwerze NAS do konwersji napisów na UTF-8, ale można go wykorzystać do dowolnej automatycznej konwersji
Zapraszam do korzystania :)
EDYTOWAĆ:
źródło