Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]konwersja znaków z ANSI do utf-8
Forum PHP.pl > Forum > Przedszkole
webmaster1989
Witam.Chcę odczytać plik ANSI,zmienić jego zawartość dopisując do każdej lini <br> i zapisać jako utf-8.Jak to zrobić? jakiś przykład?
wookieb
iconv
foreach lub sprytny array_map
webmaster1989
ALE PROSZĘ A MALUTKI PRZYKŁAD.PONIEWAŻ PRÓBOWAŁEM TEGO I NIC.MALUTKI PRZYKŁAD KTÓRY OBRAZUJE ODCZYTANIE PLIKU ANSI,DODANIE DO KOŃCA LINI <BR> I ZAPISANIE JAKO PLIK UTF.Z GÓRY DZIĘKI

Próbowałem wpisać $string=iconv('UTF-8', 'ANSI', $string); ale pokazuje mi się komunikat:
Wrong charset, conversion from `UTF-8' to `ANSI' is not allowed
d3ut3r
ANSI z tego co mi wiadomo nie jest standardem kodowania, to jest organizacja. Może chodzi Ci o ASCII ? jeżeli tak to iconv powinno mieć odwrotnie argumenty czyli najpierw z jakiego kodowania konwertujesz a później na jakie.
CuteOne
$str = iconv("UTF-8","ISO-8859-2",$text); //- z utf na anscii
$str = iconv("ISO-8859-2","UTF-8",$text); // odwrotność
webmaster1989
sprawdze.Ponieważ ja mam plik zapisany w notatniku.I gdy zapisuje jako .pokazują mi się kodowania UTF-8, i jest także ANSI .
Tomplus
ANSI to standard kodowania zgodny z ISO-8859 więc nie można zapisać

$string=iconv('UTF-8', 'ANSI', $string);

bo ANSI to nie typ kodowania, tylko standard, więc wystarczy wpisać zamiast ANSI -> ISO-8859-2 i powinno być ok.
webmaster1989
$string=iconv("UTF-8","ISO-8859-2", $string);
nie działa mi :-( Ukazuje się błąd:
Detected an illegal character in input string (wykryto niedozwolony znak w ciągu)

Poprostu mam dla przykładu plik php który odczytuje zwykły plik ,napisany w notatniu ,zapisany jako UTF-8.
<?php
$danez= Array();

$i=0;

$file ="samplet.txt";
$size = filesize($file);

$fp = fopen($file, "r");

$string=fread($fp,$size);
$string=iconv("UTF-8","ISO-8859-2", $string);
echo $string;



?>

I chce go skonwertować na ANSI.POnieważ gdy mam zapisany jako UTF-8 .PLIK PHP ODCZYTUJE MI TAKIE WARTOŚCI:
EF BB BF ..plus tekst napisany.a ANSI odczytuje mi odrazu ciag znaków.

te 3 hexy mi są nie potrzebne(może wiecie po co są te 3 hexy?).I chce je zlikwidować bez użycia strreplace .

MAM ZAPISANY TEKST W NOTATNIKU W UTF-8 I GDY CHCE GO PRZEROBIĆ NA TE "ISO-8859-2".WYWALA MI BŁĄD.
DLACZEGO? CZY NOTATNIK JEST DO KITU
Tomplus
Nie dziwię się, jak chcesz skonwertować zupelnie co innego.

użyj $string = file_get_contents($file);
i dopiero taki sklonwertowany do ISO tekst zapisz do pliku.

webmaster1989
użyłem $string=iconv('UTF-8','ISO-8859-2//IGNORE', $string); i działa:-)

Ale nadal chce wiedzieć problem.Ponieważ użyłem :
file_get_contents i lipa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.