Добрый день! Уже час борюсь с кодировкой русских символов во время отправки в бд, вот так пишет в бд - ???‹?„???„?‹?? , либо просто знаки вопроса, ужас просто намучался уже, прошу вашей помощи... Код обработки php: PHP: mysql_connect($host, $user, $password) or die("MySQL сервер недоступен!".mysql_error()); mysql_select_db($db) or die("Нет соединения с БД".mysql_error()); // Check connection //получаем данные через $_POST if (isset($_POST['psid'])) { // никогда не доверяйте входящим данным! Фильтруйте всё! $str1 = $_POST['psid']; $str2 = $_POST['namec']; $str3 = $_POST['emailc']; $str4 = $_POST['comtext']; $date = date(); $result = mysql_query ("INSERT INTO comments (id, post_id, user_id, date, autor, email, text, ip, is_register, approve, rating, vote_num, parent) VALUES ('', '{$str1}', '0', '0', '{$str2}', '{$str3}', '{$str4}', '0', '0', '0', '0', '0', '0')"); } А отправляю на обработку через ajax: Код (Javascript): <script type="text/javascript"> $(function() { $("#commadds").click(function() { var str1 = $("#namecs").val(); var str2 = $("#mailcs").val(); var str3 = $("#comments").val(); var str4 = $("#hidpost").val(); if(str3 == '') { alert("Заполните поля выделенные знаком *"); } else { $.ajax({ type: "POST", url: "/psao.php", data: {namec: str1, emailc: str2, psid: str4, comtext:str3 }, success: function(html){ } });} return false; }); }); </script> В бд и таблице кодировка- cp1251_general_ci, файл обработчика тоже ansi.
Не вижу где установлена кодировка для страницы, соединения с бд, смотри SET NAMES для MySQL. функции mysql_* уже удалил в PHP7, используй mysqli или pdo.
она тоже cp1251, через SET NAMES пробовал, не помогает... функции mysql_* уже удалил в PHP7, используй mysqli или pdo. - у меня не php7
http://image.prntscr.com/image/773aeb10856f449bb795667628f54906.png и http://image.prntscr.com/image/aea4a5cad2f64157babe2609dd38619d.png
ну вот, в настройках PHPMyAdmin возможно не правильная кодировка соединения или передачи данных, или они из скрипта попадают битые. Если в скрипте выбрать данные из базы и вывести их на экран, то они будут читаться? Если да, то точно PHPMyAdmin настроен криво.
Да, если вывести на экран - то нормально, но в бд записывается как кракозябры, подскажите пожалуйста, в чем может быть проблема? что в phpmyadmin править?
После вставки из скрипта вывод в этом скрипте нормальный? --- Добавлено --- поищи в поиске, как настроить PHPMyAdmin для работы с кодировкой 1251.
так так так если всё нормально на сайте, а в PHPMyAdmin нет, то не база виновата, а PHPMyAdmin. PHPMyAdmin это просто крутой сайт, он показывает содержимое базы, это не база. Ты свой скрип настроил, запись и чтения всё супер , а с настройкой PHPMyAdmin кто-то напортачил
Спасибо, мне удалось исправить, методом подставки mysql_query("SET NAMES cp1251"); и методом переконвертации кодировки переменных через iconv("UTF-8","Windows-1251",$_POST['namec']);