Discussion:
Sprawdzenie strony kodowej plików txt/html z konsoli ?
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Wojciech Ściesiński
2005-08-27 20:30:06 UTC
Permalink
Witam,
jakim poleceniem/programem uruchamianych z konsoli mogę sprawdzić jaka
strona kodowa jest użyta do kodowania polskich znaków w plikach
tekstowych/html ?

Od wyniku tego chciałbym uzależniać dokonanie konwersji lub nie.

Z góry dziękuję za odpowiedź.

Pozdrawiam
--
Wojciech Ściesiński; ***@NO-SPAMwojteks.net

Wolne Oprogramowanie czyni wolnym...
Popierasz Open Source ? Czytaj http://7thguard.net
Mikolaj Machowski
2005-08-27 22:20:42 UTC
Permalink
Post by Wojciech Ściesiński
Witam,
jakim poleceniem/programem uruchamianych z konsoli mogę sprawdzić jaka
strona kodowa jest użyta do kodowania polskich znaków w plikach
tekstowych/html ?
file

m.
--
LaTeX + Vim = http://vim-latex.sourceforge.net/
Vim Universal Templates: http://vim.sf.net/script.php?script_id=1078
vim.pl - http://skawina.eu.org/mikolaj
CLEWN - http://clewn.sf.net
Wojciech Ściesiński
2005-08-28 01:20:59 UTC
Permalink
Post by Wojciech Ściesiński
jakim poleceniem/programem uruchamianych z konsoli mogę sprawdzić jaka
strona kodowa jest użyta do kodowania polskich znaków w plikach
tekstowych/html ?
file
Niestety nie, sprawdziłem wszystkie przełączniki i dowiaduję się, że ...
plik tekstowy to plik tekstowy :-(

No chyba, że naprawdę coś przeoczyłem - późno jest ;-)

Pozdrawiam
--
Wojciech Ściesiński; ***@NO-SPAMwojteks.net

Wolne Oprogramowanie czyni wolnym...
Popierasz Open Source ? Czytaj http://7thguard.net
Mikolaj Machowski
2005-08-28 09:26:40 UTC
Permalink
Post by Wojciech Ściesiński
Post by Wojciech Ściesiński
jakim poleceniem/programem uruchamianych z konsoli mogę sprawdzić jaka
strona kodowa jest użyta do kodowania polskich znaków w plikach
tekstowych/html ?
file
Niestety nie, sprawdziłem wszystkie przełączniki i dowiaduję się, że ...
plik tekstowy to plik tekstowy :-(
Mi wyrzuca
***@localhost ~/foto $ file fotografia fotocp
fotografia: ISO-8859 text
fotocp: Non-ISO extended-ASCII text

file 4.13

m.
--
LaTeX + Vim = http://vim-latex.sourceforge.net/
Vim Universal Templates: http://vim.sf.net/script.php?script_id=1078
vim.pl - http://skawina.eu.org/mikolaj
CLEWN - http://clewn.sf.net
Hoppke
2005-08-28 10:38:24 UTC
Permalink
Post by Mikolaj Machowski
Post by Wojciech Ściesiński
plik tekstowy to plik tekstowy :-(
Mi wyrzuca
fotografia: ISO-8859 text
fotocp: Non-ISO extended-ASCII text
file 4.13
Zależy od pliku. file nie jest aż tak dobry w rozpoznawaniu, bo przy
tekstach skanuje chyba tylko pierwsze ileśtam bajtów pliku. Zresztą sam
widzisz, że dla "fotografia" pokazał Ci tylko iso8859 - ok, ale to rodzina
kodowań. Nadal nie wiesz które kodowanie konkretnie.

[j:0 c:0]/home/grzegorz> file odpowiedz.php cdcopy
odpowiedz.php: HTML document text
cdcopy: ISO-8859 text

[j:0 c:0]/home/grzegorz> enca odpowiedz.php cdcopy
odpowiedz.php: ISO 8859-2 standard; ISO Latin 2
Mixed line terminators
cdcopy: ISO 8859-2 standard; ISO Latin 2
--
.°.°.°.°.°.°.: http://dobremiasto.net/~hoppke/ :.°.°.°.°.°.°.
Hoppke
2005-08-28 10:14:36 UTC
Permalink
Post by Wojciech Ściesiński
file
Niestety nie, sprawdziłem wszystkie przełączniki i dowiaduję się, że ...
plik tekstowy to plik tekstowy :-(
OK, to wypróbuj enca. Całkiem fajne. Rozpoznaje kodowania. Nazywa się enca.
Ładne imię dla kobiety, takiej śródziemnomorskiej piękności. Enca...
Albo dla klaczy. Tyż piknie.

Jest też libenca - do użytku we własnych programach. Jest też chyba
pythonowy binding[1].

BTW, mplayer ma wsparcie dla libenca - trochę ustawiania i ma się mplayera
który sam rozpoznaje kodowanie plików z napisami.

BTW#2, kiedyś znajomy chciał rozgryźć charset użyty w jakimś dumpie z bazy
danych (którego to dumpa dostali od jakichś Hiszpanów IIRC), więc z braku
lepszego pomysłu (i w wyniku zaćmienia zapomniawszy o libenca)
wykombinowałem pętlę, która chodziła po /usr/lib/gconv i próbowała
konwertować po kolei dane z każdego kodowania tam zawartego na jakiś unikod.

iconv zwraca błąd (sygnalizowany też w kodzie wyjścia) gdy konwersja się nie
powiedzie - więc przy każdym błędzie wiedziałem, że charset wejściowy jest
niepoprawny (zakładałem, że charset wyjściowy będzie zawsze dobry, wybrałem
w końcu jakiś specjalnie szeroki unikod). Wystarczyło pozbierać nazwy
charsetów dla których konwersja się powiodła. No i pod koniec zostało
kilkanaście charsetów do wyboru. Sukces.

Aha, dane po konwersji i tak nie miały sensu. Bodajże Hiszpanie coś
spieprzyli i dane przyszły już uszkodzone. Ale skaner kodowania zrobiłem
poprawny.

[1] - ok, dla "wrapper" mamy nasze rdzenne polskie "owijka". A dla
"binding"? Może "wiązadełko"?
--
.°.°.°.°.°.°.: http://dobremiasto.net/~hoppke/ :.°.°.°.°.°.°.
Wojciech Ściesiński
2005-08-28 14:15:08 UTC
Permalink
Post by Hoppke
OK, to wypróbuj enca. Całkiem fajne. Rozpoznaje kodowania. Nazywa się enca.
Ok, działa - dla potomności dodam adres strony domowej projektu
http://trific.ath.cx/software/enca/.

Dzięki.

Pozdrawiam
--
Wojciech Ściesiński; ***@NO-SPAMwojteks.net

Wolne Oprogramowanie czyni wolnym...
Popierasz Open Source ? Czytaj http://7thguard.net
Loading...