Я извлекаю некоторую строку из facebook, но я не знаю кодировку whitch в строке. Мне нужно преобразовать эту строку в utf8 перед вставкой в таблицу базы данных. Получение этого сообщения об ошибке.
Вот мой php-код.
$email = (isset($this->_userinfo['email']) ? $this->_userinfo['email'] : ''); $fname = $this->_userinfo['first_name']; $lname = $this->_userinfo['last_name']; $name = $this->_userinfo['name']; $sql = 'INSERT INTO users ' . '(fbid, fbuid, fullname, userlevel, email, name, sirname) ' . 'VALUES("' . $this->_fbid . '","' . $fbuid . '","' . $name . '","' . $userlevel . '","' . $email . '","' . $fname . '","' . $lname . '")';
Вы можете взглянуть на этот вопрос:
Обнаруживать кодировку и делать все UTF-8
особенно второй ответ Себастьяна Гриноли
Он написал класс (и предлагает ссылку на него), который корректно кодирует Windows Extended ASCII в UTF8, а также при необходимости исправляет UTF8.
Действительно удобный инструмент, чтобы иметь, когда вы находитесь на земле UTF8 🙂
Вы пробовали этот код?
mysql_query('set names utf8');
Посмотрите на utf8_encode, чтобы сделать это за вас. Имейте в виду, что это будет работать, только если ваши данные на самом деле кодируются UTF-8. К сожалению, нет способа просто посмотреть на строку и посмотреть, какую кодировку она использует.
введите ссылку здесь
Для меня работает следующий код:
$ mysqli = mysqli_connect (…); mysqli_query ($ mysqli, 'SET NAMES "utf8" COLLATE "utf8_general_ci"');
или просто:
mysqli_set_charset ($ mysqli, 'utf8');
С уважением, удачи!