Najpierw w skrócie, w jaki sposób można rozpoznać stronę kodową tekstu wpisanego przez użytkownika w formularzu.
A teraz długi opis problemu ...
W bazie danych mam tabelkę z kolumną tekstową z kodowaniem utf-8.
Skrypt php wyświetla zawartość tej tabelki i formularz umożliwiający dodanie nowej wartości do niej. Strona kodowa skryptu to windows-1250, nagłówek meta też podaje taką stronę, zawartość tabelki jest konwertowana za pomocą iconv (przy odczycie i wstawianiu nowej wartości).
Czyli przeglądarka powinna się automatycznie ustawić na stronę kodową windows-1250 i zawartość tabelki jest wyświetlana poprawnie.
Jeżeli użytkownik sam ustawi jakąś inną stronę kodową w przeglądarce (np. iso-8859-2) to wszystkie konwersje trafia bo na sztywno jest wpisane:
<?php // ... $query = \"INSERT INTO t (tekst) VALUES ('\" . iconv(\"windows-1250\", \"uft-8\", $_POST[\"tekst\"]) . \"')\"; // ... ?>
I jeszcze raz powtarzam pytanie: jak rozpoznać stronę kodową tekstu który przyszedł?