Сценарий: html-документ, который используется для редактирования сведений о продукте, кодируется как ISO-8859-1 и отправляет данные POST в PHP-файл (также кодированный ISO-8859-1). Этот PHP-файл, в свою очередь, имеет mysql_real_escape_string -функции, очищающие входы. Шифр сервера базы данных/mysql - UTF-8. Проблема в том, что когда в строке POST есть скандинавские буквы (ä, ö, å), mysql_real_escape_string возвращает пустую строку.Ошибка кодирования с помощью mysql_real_escape_string, возвращает пустую строку
Я попытался переопределить его с помощью utf8_encode/decode, но это не сработает.
Теперь, если я использую php-файлы html & для использования UTF-8, сохранение работает нормально (как и ожидалось), но все ранее сохраненные данные продукта выглядят коррумпированными, и есть тысячи строк продукта.
Что было бы самым простым решением для его устранения? Измените кодировку db? Запустить функцию кодирования для преобразования записей в db?
«кодируется как ISO-8859-1» - Почему? Это не 90-е годы. – Quentin
Обратите внимание: функции 'mysql_xxx()' устарели. Я рекомендую переключить свой код на использование более новых библиотек PDO или mysqli. – Spudley
Кодовая база на самом деле с 90-х годов. Люблю это. – Apeli