У меня есть приложение, которое работает с клиентами со всего мира, и, естественно, я хочу, чтобы все, что входит в мои базы данных, было в кодировке UTF-8.
Основная проблема для меня заключается в том, что я не знаю, какой будет кодировка источника какой-либо строки - это может быть из текстового поля (использование <form accept-charset="utf-8">
полезно, только если пользователь фактически отправил форму), или это может быть из загруженного текстового файла, поэтому я действительно не могу контролировать ввод.
Что мне нужно, так это функция или класс, обеспечивающие, насколько это возможно, входящие в мою базу данных данные в кодировке UTF-8. Я пробовал, iconv(mb_detect_encoding($text), "UTF-8", $text);
но у него есть проблемы (если ввод 'fiancée', он возвращает 'fianc'). Я много чего перепробовал = /
Для загрузки файлов мне нравится идея попросить конечного пользователя указать кодировку, которую он использует, и показать им предварительный просмотр того, как будет выглядеть вывод, но это не помогает против злобных хакеров (на самом деле, это может сделать их жизнь немного проще).
Я читал другие вопросы SO по этому вопросу, но, похоже, все они имеют тонкие различия, такие как «Мне нужно проанализировать RSS-каналы» или «Я очищаю данные с веб-сайтов» (или, действительно, «Вы не можете»).
Но должно быть что-то, что, по крайней мере, стоит попробовать !
UTF-8//IGNORE
в качестве второго параметра в iconv
?