Buduję aplikację internetową PHP i działa ona w UTF-8. Baza danych to UTF-8, strony są podawane jako UTF-8 i ustawiam zestaw znaków za pomocą metatagu na UTF-8. Oczywiście, w przypadku użytkowników korzystających z przeglądarki Internet Explorer i kopiowania z pasterzowania z pakietu Microsoft Office, czasami udaje mi się uzyskać od czasu do czasu wejście do UTF-8.Najlepsza metoda przekształcania danych wprowadzanych przez użytkownika do UTF-8
Idealnym rozwiązaniem byłoby podanie błędu HTTP 400 Bad Request
, ale oczywiście nie mogę tego zrobić. Kolejną najlepszą rzeczą jest przekształcenie $_GET
, $_POST
i $_REQUEST
w UTF-8. Czy mimo to widzę, jaki znak koduje dane wejściowe, więc mogę je przesłać do iconv
? Jeśli nie, jakie jest najlepsze rozwiązanie?
Oczywiście nie można zagwarantować, że ciąg znaków jest zgodny z ISO-8859-1, ale 'mb_detect_encoding()' wygląda dobrze –