@33balabol

Проблемы с кодировкой при записи данных в БД (php). Как исправить?

Все очень сложно...

Не первый сайт пишу, однако, с подобным курьезом столкнулся впервые.
Есть 3 задействованных файла:
index.php
script.js
comment.php
Какими только способами не пытался изменить кодировку файлов, думаю, что они в cp1251, как и надо.

На странице index.php есть текстовое поле, от туда уходит текст в js, из js в comment.php.
В comment.php идет стандартная запись в БД
mysqli_query($linkdb, "INSERT INTO table(aaa,bbbb,cccc,ddddd)
    VALUES(                     
      '".$_POST["text"]."',
      '".$_SESSION['id_user']."',
      '".$_GET["id"]."',
      NOW()                                                                                 
      )");


В бд заноситься - оыфа аофдовапфвпа РґРІР° вадф
Самое главное, с тем же самым запросом из index.php через input type="submit" все заноситься в нужной кодировке.

В БД сравнение utf8_general_ci

.htaccess:
AddDefaultCharset WINDOWS-1251
php_value default_charset "cp1251"

Подключение:
$linkdb->set_charset("cp1251");

По всему сайту также вся кодировка в порядке, только запись через Ajax нагнетает.
  • Вопрос задан
  • 373 просмотра
Решения вопроса 1
@lubezniy
Насколько я помню, xmlHttpRequest, обычно используемый для AJAX, всегда передаёт POST-параметры запроса в UTF-8. Если уж так хочется писать в базу в 1251, то mb_convert_encoding или iconv в помощь.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
LenovoId
@LenovoId
svg, css,js
вы же сами пишете что в htaccess кодировка windows-1251 а в DB utf8 , вы сделайте что бы одинаковая была кодировка и так же html надо сохранить в utf8 ,
UTF8 это универсальная кодировочка и подходит для всех случаях кроме арабского и т д
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы