Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Rozpoznawanie kodowania

971 views
Skip to first unread message

TornadoTN - (Tomek N.)

unread,
Feb 15, 2009, 7:02:36 AM2/15/09
to
Witam
Mam plik tekstowy o jakimś kodowaniu znaków.
Jakie znacie najlepsze sposoby do rozpoznania kodowania polskich znaków?

plik wczytuje w ten sposób:
$string=file_get_contents('plik.txt');

--
Pozdrawiam
TornadoTN (Tomek N.) --> http://www.tomek.net.pl
> > > > > http://www.dma.net.pl < < < < <

Koteczek

unread,
Feb 15, 2009, 9:40:46 AM2/15/09
to
BOM w pliku chyba o tym mowi poszukaj o co chodzi

http://unicode.org/faq/utf_bom.html#bom1

do tego np znam taki trik z przekodowujesz z utf8 na utf8 (chodzi o to samo
kodowanie) i jak sa takie same = bylo utf8 :)

TornadoTN - (Tomek N.)

unread,
Feb 15, 2009, 11:25:37 AM2/15/09
to
Koteczek pisze:

BOM ma tylko UTF.... i to też nie zawsze edytory go zapisują.

nie znam algorytmu ktory by zmieniał iso na iso.... ;)
To jest coś ala zamienić 'ę' na 'ę' i jak bedzie to samo to wtedy mamy
'ę'....

lamer

unread,
Feb 15, 2009, 2:14:18 PM2/15/09
to

Użytkownik "TornadoTN - (Tomek N.)" <to...@dma.net.pl> napisał w wiadomości
news:gn9g63$vj$1...@mx1.internetia.pl...

> Koteczek pisze:
>> BOM w pliku chyba o tym mowi poszukaj o co chodzi
>>
>> http://unicode.org/faq/utf_bom.html#bom1
>>
>> do tego np znam taki trik z przekodowujesz z utf8 na utf8 (chodzi o to
>> samo kodowanie) i jak sa takie same = bylo utf8 :)
>
> BOM ma tylko UTF.... i to też nie zawsze edytory go zapisują.
>
> nie znam algorytmu ktory by zmieniał iso na iso.... ;)
> To jest coś ala zamienić 'ę' na 'ę' i jak bedzie to samo to wtedy mamy
> 'ę'....

BOM ma tylko UTF 16. UTF8 może mieć BOM, ale zwykle nie ma.
Najprościej to sobie sprawdzić czy dany znaczek jest w pliku, np. iso 8859-2
i win cp 1250 inaczej kodują znaczki ą, ś, ź.
UTF8 inaczej zapisuje wszystkie polskie znaki diakrytyczne.


lamer

Koteczek

unread,
Feb 15, 2009, 4:55:36 PM2/15/09
to

>> nie znam algorytmu ktory by zmieniał iso na iso.... ;)
>> To jest coś ala zamienić 'ę' na 'ę' i jak bedzie to samo to wtedy mamy
>> 'ę'....

$url = urldecode($url);

if ( @iconv('UTF-8', 'UTF-8', $url ) == $url )
$url = @iconv("UTF-8", "ISO-8859-2//TRANSLIT", $url);

$url = parse_url($url);

cos takiego mam, nie wiem po co mi to bylo ale widocznie po cos :)

Michał Wojtas

unread,
Feb 15, 2009, 8:15:48 PM2/15/09
to
> BOM ma tylko UTF 16. UTF8 może mieć BOM, ale zwykle nie ma.
> Najprościej to sobie sprawdzić czy dany znaczek jest w pliku, np. iso
> 8859-2 i win cp 1250 inaczej kodują znaczki ą, ś, ź.
> UTF8 inaczej zapisuje wszystkie polskie znaki diakrytyczne.

Jeżeli problem polega na rozróżnieniu iso88592 od win1250, to raczej nie
opierałbym się na występowaniu jednego lub 3ch znaczków, ale na częstotliwości
występowania całego zestawu polskich liter (na szczęście nie jest ich dużo).
Szczególnie że np. "ź", w szczególności wielkie występuje w języku dość rzadko.
Druga rzecz, że w danym tekście może występować oprócz literki "ą" także znak
+/-, który w cp1250 jest w zestawie znaków, a w iso zastępuje go pod tym samym
kodem litera ą. Ale to tylko teoretyczne rozważanie, możliwe, że szukam problemu
tam gdzie go nie ma.

pozdr,
michal

Maciej Łebkowski

unread,
Feb 16, 2009, 6:11:24 AM2/16/09
to
Dnia 15-02-2009 o 13:02:36 TornadoTN - (Tomek N.) <to...@dma.net.pl> napisał(a):

> Jakie znacie najlepsze sposoby do rozpoznania kodowania polskich znaków?

http://uk2.php.net/manual/en/function.mb-detect-encoding.php


--
Maciej Łebkowski

0 new messages