С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67

Квакозябры при вводе русских символов в MYSQL через форму

02.10.2014, 18:07. Показов 2648. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане!
Никак не получается правильно ввести русский текст в таблицу MYSQL через форму. Отображаются квакозябры.

1. В мета везде стоит:

HTML5
1
<meta http-equiv="content-Type" content="text/html; charset=UTF-8">
2. В форме:
HTML5
1
<form accept-charset="UTF-8"
3. В исполняющем PHP тоже прописал:

PHP
1
2
3
 
mysqli_set_charset( 'utf8' );
mysqli_query($con,"SET CHARSET utf8");
4. .htaccess тоже прописал: AddDefaultCharset UTF-8

Где еще нужно?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.10.2014, 18:07
Ответы с готовыми решениями:

При вводе русских символов через cin в string превращаются в крокозябры
string name = &quot;&quot;; cin &gt;&gt; Name; &quot;Иван&quot; Выводит &quot;€ў**&quot; Что делать? Такое только при вводе. Заранее инициализированные отображаются...

Ошибка при вводе русских символов
Почему при вводе русских символов выпадает ошибка? familya: std::cout &lt;&lt; &quot;Введите фамилию!&quot;&lt;&lt;std::endl; ...

При вводе в массив char русских символов они изменяются
Вот такой код: #include&lt;iostream&gt; #include&lt;ctime&gt; #include&lt;cstdlib&gt; using namespace std; int main() { ...

21
Native x86
Эксперт Hardware
 Аватар для quwy
6855 / 3788 / 1025
Регистрация: 13.02.2013
Сообщений: 11,861
02.10.2014, 18:09
Efrosiniya, текст самой страницы с формой в какой кодировке? Что браузер показывает, если через меню принудительно указать UTF-8?
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
02.10.2014, 18:12  [ТС]
Только что попробовал utf-8 поставить в браузере, все страницы сайта правильно показываются
0
Native x86
Эксперт Hardware
 Аватар для quwy
6855 / 3788 / 1025
Регистрация: 13.02.2013
Сообщений: 11,861
02.10.2014, 18:13
Efrosiniya, ну покажите тогда еще результат запроса show create table <имя_таблицы_в_которую_пишем>
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
02.10.2014, 18:19
После подключения к БД - такой запрос:
MySQL
1
mysqli_query($con,"SET NAMES utf8");
Его одного должно хватить. У кроме кодировки страницы, нужно еще сравнение для полей ставить "utf8_general_ci"
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
02.10.2014, 18:19  [ТС]


Такой экран выдает
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
02.10.2014, 18:27  [ТС]
Поставил запрос mysqli_query($con,"SET NAMES utf8"); все равно квакозябры вводит, а с "utf8_general_ci" расскажите поподробнее пожалуйста, где ставить сравнение и как?
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
02.10.2014, 18:35
Цитата Сообщение от Efrosiniya Посмотреть сообщение
а с "utf8_general_ci" расскажите поподробнее
Пересказывать не буду, т.к. в первоисточнике всё доступно описывается. А по зависшей проблеме - где-то у вас недочет. Раз переводя принудительно кодировку браузера к UTF-8 у вас всё отображается нормально, то с вашей стороны что-то не дает эту кодировку установить браузеру самостоятельно.
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
02.10.2014, 18:40  [ТС]
Спасибо за ссылку, буду разбираться...
Отображаеются нормально страницы сайта имел ввиду, а в базу квакозябры вводятся при любом раскладе.

Еще в my.ini зашел, там такие есть строки:

default-character-set=utf8
# The default character set that will be used when a new schema or table is
# created and no character set is defined
character-set-server=latin1
Т.е. может MYSQL вообще utf8 не понимает...
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
02.10.2014, 18:57
Цитата Сообщение от Efrosiniya Посмотреть сообщение
может MYSQL вообще utf8 не понимает
Улыбнуло ))
Попробуйте прописать/изменить в конфиге параметры с такими значениями (! предварительно сделайте backup файла или просто закомментировать оригиналы) и перезапустите мускул.

Code
1
2
3
4
5
6
7
8
9
10
11
[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
 
 
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
02.10.2014, 19:13  [ТС]
изменил конфиг, перезапустил и MYSQL и сервер пока проблема осталась
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
02.10.2014, 19:23
Efrosiniya, остаётся искать проблему на этапе внесения данный в базу. Просмотрите код, может у вас где -то данные перекодируются (напр., функцией iconv() или ей подобными), убедитесь, что страница, на которой идет запрос на добавление, тоже в кодировке UTF-8 без BOM и т.д. Попробуйте установить на этой же странице внутреннюю кодировку - mb_internal_encoding(). Может оно и лишнее, но в таких случая нужно все методы испробовать.
P.S. Вы данные из формы передаёте обычным способом (GET, POST) или же Ajax-запросом?
P.P.S. Попробуйте вручную прописать все данные на странице запроса и выполнить его. Какой будет результат?
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
02.10.2014, 20:00  [ТС]
Обычным POST:
Отправляю:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
    <head>
    <meta http-equiv="content-Type" content="text/html; charset=UTF-8">
           </head>
    
            <body>
                 <form accept-charset="UTF-8" action="/PHPproc/insert_new_request.php" method="post" id="addpost">
                      Имя:<input type="text" name="name" maxlength="49"required>
                      <!-- и т.д. -->
                      <input type="submit" value="Отправить" style="font-size: 12;" class="btn">
                  </form>
             </body>
</html>
Принимаю:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
header( 'Content-Type: text/html; charset=utf-8' );
 
 $con=mysqli_connect("localhost","****","****","*****");
 // Check connection
 if (mysqli_connect_errno()) {
   echo "Ошибка MySQL: " . mysqli_connect_error();
    }
    else {
    echo "Подключились";
     }
 
 
     mysqli_set_charset( 'utf8' );
     mysqli_query($con,"SET NAMES utf8");
 
 
     $name = mysqli_real_escape_string($con, $_POST['name']);
     // и т.д.
 
     $sql="INSERT INTO ******** (Name, .....) VALUES ( '$name', ......)";
 
     if (!mysqli_query($con,$sql)) {
     die('Error: ' . mysqli_error($con));
     }
 
      mysqli_close($con);
 
?>
Добавлено через 9 минут
Попробовал руками в БД вставлять данные на русском тоже кваказябры, только другие
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
02.10.2014, 20:10
Во-первых, атрибут "accept-charset" тут не нужен (в том же IE баги наблюдались). И вы пробовали то, что я вам предлагал выше: "вручную прописать все данные на странице запроса и выполнить его " ?

Добавлено через 1 минуту
Цитата Сообщение от Efrosiniya Посмотреть сообщение
Попробовал руками в БД вставлять данные на русском тоже кваказябры, только другие
Ох, ну точно что-то где-то осталось в "левой" кодировке.
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
02.10.2014, 20:41  [ТС]
Вот, попробовал еще и добавлять руками запросы на вставку данных в командную строку MYSQL, тоже самое
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
02.10.2014, 21:41  [ТС]
Вот еще какая странная штука, если прописываю в базе SET NAMES utf8; начинает выдавать ошибку на запрос о вставке данных на русском.


Это я уже новую базу создал, чтобы проверить, все руками вводил, вообще безотносительно PHP
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
02.10.2014, 22:24
Efrosiniya, мы играем в "угадай мелодию" )) Сделайте такой запрос:
MySQL
1
SELECT * FROM information_schema.COLUMNS WHERE table_schema = 'test' AND collation_name != 'utf8_general_ci';
Вместо "test" своя база данных. Выдаст что-нибудь?
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
02.10.2014, 22:29  [ТС]
пишет, что пусто, Empty set
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
02.10.2014, 22:39
Efrosiniya, я в потере Уже готов в инопланетян поверить ... Скажите, у вас проблема только в этой части? Другие добавления, апдейты и т.п. работают без проблем?
0
3 / 3 / 2
Регистрация: 17.09.2014
Сообщений: 67
02.10.2014, 22:43  [ТС]
Вроде в остальное без нареканий работает, не знаю что же это такое, если завтра ничего не придумаю, попробую MYSQL переставить может просто она как-то криво встала
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.10.2014, 22:43
Помогаю со студенческими работами здесь

При вводе русских символов в sqlplus, в файле afiedt.buf они отображаются некорректно
Доброго времени суток! Только начал изучение sql, не ругайте) При вводе русских символов в sqlplus, в файле afiedt.buf они отображаются...

Проблема с отображением русских символов при обращении к MySQL
Здравствуйте Столкнулся со следующей проблемой. Есть БД MySQL в которой таблицы с русскими символами и полями комментариев типа MEMO....

Как сделать, чтобы при вводе через форму автоматически проставлялась системная дата?
Подскажите,пож-ста,как можно сделать так,чтобы призаполнении таблицы через форму автоматически в поле дата проставлялась системная дата и...

Как при вводе данных в таблицу через форму осуществить переход к следующей непустой строке?
Доброго времени суток! извините, если пишу не там где нужно( я долго искал подходящий раздел но так ничего и не нашел) Я начинающий. учусь...

Редирект пользователя через форму ввода логина и пароля при вводе нужных данных на определенную страницу
Ребят, ну никак не могу разобраться в запросах к БД. Давайте я буду писать как мыслю и что делаю. А вы поругайте и поправьте :) В БД...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru