Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> import pliku txt z jednoczesnym jego przekodowaniem pod PHP, na temat iconv()
Czadus
post
Post #1





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

Ostrzeżenie: (0%)
-----


Witam. Jest to mój pierwszy post na tym forum, więc z góry przepraszam za złamanie jakiegokolwiek punku regulaminu.

Mam mały problem, a może raczej wątpliwość. Mam stworzony system dla firmy zajmującej się doradztwem majątkowym. Na stronie zawarte są wszystkie dane odnośnie wpłat klientów, prowizji dla pracowników itp. Wpłatę dla danego klienta można dokonać indywidualnie poprzez formatki, i tutaj wszystko jest ok. Ale co, Jeżeli należy dokonać wpłat np. dla 300 osób?? Trochę to pracochłonne. Stąd też powstał oddzielny dział w tym systemie. Tam, importując plik z danymi, mamy możliwość w ciągu 1-2 minut dokonać wpłat dla sporej liczby klientów. I tutaj pojawia się dla mnie wątpliwość. Dokonuję poprawiania błędów strony, które to błędy spowodowane są przez tegoż programistę, który cały system pisał. Ja zmieniłem kodowanie strony na UTF-8..... Po czym powstaje problem. Pliki *.txt które firma otrzymuje mają inne kodowanie aniżeli strona, na którą te wpłaty importujemy. Tym samym powstaje problem z polskimi znakami, które w pliku *.txt są poprawnie widoczne, jednak po zaimportowaniu do strony, powstają jedynie krzaczki. I nie ma się co dziwić, kodowanie strony a tego pliku są zupełnie inne. Aby rozwiązać mój problem, skorzystałem z funkcji iconv(). Pierwszy parametr to kodowanie wejściowe, drugi parametr to wyjściowe, a trzeci to pewien string wejściowy. Gdybym miał pewność, że plik *.txt zawsze będzie miał to samo kodowanie, byłoby ok, no ale nigdy nie wiemy co będzie. Dlatego j a lekko zmodyfikowałem funkcję do poniższej postaci:

iconv("","UTF-8",$a);

Jak widać, nie podałem kodowania wejściowego sądząc, że PHP weźmie każde kodowanie i przekonwertuje je na UTF-8. Ale nie jest to określone w specyfikacji php. Moje pytanie zatem brzmi, czy mogę czućsię swobodnie tak korzystając z tej funkcji?? Czy mam powody obawiać się, że może zdarzyć się coś nieprzewidywalnego?? Albo, że jakiś plik zostanie niepoprawnie przekonwertowany?? No i czy jest to moduł, który jest czymś dodatkowym, czy każdy serwer go udostępnia?? Będę wdzięczny za każdą informację. Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Fixus
post
Post #2





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

Ostrzeżenie: (0%)
-----


a jak ten plik w ogóle jest pobierany? Wymuszasz ściąganie przez przeglądarkę czy zapisuje się on na serwerze?
Co do kodowania możesz zawsze wykorzystać naglowki do tego celu. Ja mialem ostatnio podobny problem, jednak u mnie to dotyczylo zarówno polskich ogonków, niemieckich kropeczek i bulgarskiej cyrylicy. W moim wypadku plik .txt (czasami .csv) jest ściągany przez przeglądarkę. Żeby naprawić problem kodowania podczas tworzenia plików wykorzystuje header() w którym to ustawiam kodowanie na utf8

co do twojego pytania konkretnie już. Zawsze możesz sprawdzić jakie kodowanie ma ten plik i ustawić je jako parametr
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 20:54