Sciągam dane z bazy danych, obie kolumny są kodowane utf8_polish_ci, i łącze je funkcją CONCAT_WS() w jedność.
Potrzebuję je umieszczać w pliku tekstowym ale ten plik otwiera się w kodowaniu ISO-8859-1, ustawiałem nagłówki PHP Content-type: plain/text; charset=UTF-8 i są krzaki.
co już robiłem;
patrzyłem na plik w różnych edytorach - wszedzie sa krzaki
patrzyłem na wynik w przeglądarce - wtedy jest OK
próbowałem na siłe konwertować wlocie kodowanie funkcja iconv() - nie pomaga
wyciagalem kodowania przez mb_detect_encoing() wtedy wyrzuca prawie co trzecie jako “ASCII” a reszta jest utf-8
do tego wszystkiego jeszcze jest wiele innych danych które też są w utf 8 ale one są poprawne jeżeli są bez tych dwóch kolumn o ktorych pisałem wcześniej, jezeli dodam te kolumny do pliku to wtedy wszystkie znaki utf8 się krzaczą
Ja nie siedzę w PHP ale jak wspomniałeś o tym że w locie konwertujesz to może by pomogło zrobienie jakiejś tablicy której indeksem będzie polski znak (a raczej jego kod) w kodowaniu ISO-8859-1 a po drugiej stronie będzie polski znak (jego kod) w kodowaniu UTF-8 i niestety pętelka po wszystkich znakach i ewentualna zamiana i dopiero zapis. Jednak to to powinno być rozwiązanie w ostateczności gdyż dużo zbędnych operacji się wykonuje. Może najpierw ktoś kto miał z tym styczność niech się wypowie.
To byś musiał sporą tabelkę stworzyć z odpowiednikami kodów ISO-8859-1 <-> UTF-8. Ale mówię, to tylko taki mój pomysł bruteforce a poprawne rozwiązanie niech ktoś inny znajdzie.