mysql получает urlencoded данные в базу данных - PullRequest
0 голосов
/ 06 июня 2011

у меня проблема

У меня есть дамп базы данных mysql, но все данные в кодировке URL содержат + вместо пробелов и других символов в виде% 20 и т. Д.

Я попытался импортировать это напрямую и написал php-скрипт для декодирования данных и перезаписи их обратно в БД,

/// make rs..........

........
do { 
    // decode the items in the countries table
    $myCountryID = $row_countries['id_con'];
    $new_country_con = urldecode($row_countries['country_con']);

    $result = mysql_query("UPDATE countries_con SET country_con = '".$new_country_con."'
    WHERE id_con = ".$myCountryID."")or die(mysql_error()) ;
    echo("id_win: ".$myCountryID."<br>added country_con: ".$new_country_con."<br>");

} while ($row_countries = mysql_fetch_assoc($countries)); 
echo('----------------------------------END Countries-------------------------------------<br><br>');

страница настроена на использование utf8 все таблицы в БД настроены на использование utf8

оператор echo выводит правильные символы, но он все равно сохраняется в БД в виде строки с кодировкой urlen-кода, как я могу получить его в БД в виде utf8 без символов, закодированных в url ?????

1 Ответ

1 голос
/ 06 июня 2011

Попробуйте распечатать ваш запрос, чтобы увидеть, в какой момент он производит% 20 (до выполнения запроса или после).

Также см.: http://recursive -design.com / blog / 2008/06/23 / force-mysql-encoding-to-utf8 /

...