4 / 5 / 4
Регистрация: 31.03.2015
Сообщений: 145
1

Вместо русских букв иероглифы

14.03.2016, 20:19. Показов 9863. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После отправки формы с сайта, вместо русских букв в БД кракозябры. Соответственно и на сайт возвращаются кракозябры. Как это исправить?

Кодировка сервера: UTF-8 Unicode (utf8)
Сервер: Apache/2.2.31 (Win32)
Сопоставление кодировки соединения с MySQL: utf8_general_ci
На сайте <meta charset="utf-8">

Вставил в код character_set_name(); пишет, что кодировка utf8
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2016, 20:19
Ответы с готовыми решениями:

вместо русских букв тире (-)
на сайте создаю новость после перехода в полную версию новости, в url вместо русских букв - тире...

Квадратики вместо русских букв
Вот, что сделано: 1. Создана база данных (БД) в MySql 2. Создана таблица в этой БД 3. Создано...

Знаки ? вместо русских букв в WAMP
На локальном wamp сервере в phpmyadmin по умолчанию устанавливается кодировка latin1_swedish_ci....

Кракозябры вместо русских букв в движке
Привет, подскажите пожалуста. Хотел установить движок Simple Quotes Engine. Импортировал бд,...

20
Эксперт PHP
3827 / 3178 / 1334
Регистрация: 01.08.2012
Сообщений: 10,768
14.03.2016, 20:26 2
Проверьте кодировку таблицы и кодировку конкретно того поля (столбца), в котором лежат кракозябры. Возможно там закралась 1251.

Добавлено через 32 секунды
Ах да, и кодировку самого php-скрипта. Он также должен быть в utf8.
0
4 / 5 / 4
Регистрация: 31.03.2015
Сообщений: 145
14.03.2016, 20:58  [ТС] 3
Jodah, я думал, если кодировка сервера utf8, то и кодировка всей БД такая же. А как посмотреть кодировку таблицы и столбца в PHPMyAdmin?
0
0 / 0 / 0
Регистрация: 09.05.2015
Сообщений: 67
14.03.2016, 21:25 4
В сравнениях
Миниатюры
Вместо русских букв иероглифы  
0
Эксперт PHP
3827 / 3178 / 1334
Регистрация: 01.08.2012
Сообщений: 10,768
14.03.2016, 22:04 5
Novichek_9I, нет, кодировка БД (по-умолчанию) такая, какая была указана при её создании. При создании таблицы можно кодировку поменять, как - выше показали. Добавлю, что надо затем тыкнуть "Структура" и проверить кодировку каждого столбца, она может отличаться от общей кодировки таблицы или БД.
1
4 / 5 / 4
Регистрация: 31.03.2015
Сообщений: 145
15.03.2016, 08:52  [ТС] 6
Jodah, в сравнениях везде utf8_general_ci

Добавлено через 6 минут
Что бы я не писал по-русски в поле формы, в БД всегда это отображается этими символами: &ETH;

Добавлено через 2 минуты
Кстати, у меня OpenServer стоит
0
Эксперт PHP
3827 / 3178 / 1334
Регистрация: 01.08.2012
Сообщений: 10,768
15.03.2016, 09:13 7
Novichek_9I, а кодировку скрипта на utf8 меняли?
0
4 / 5 / 4
Регистрация: 31.03.2015
Сообщений: 145
15.03.2016, 09:27  [ТС] 8
Jodah, ну вот, я писал, что у меня в коде только <meta charset="utf-8">. Больше ничего нигде не указано.
0
Эксперт PHP
3827 / 3178 / 1334
Регистрация: 01.08.2012
Сообщений: 10,768
15.03.2016, 09:30 9
Novichek_9I, нет, кодировку самого файла. Открываете файл через Notepad++, там Кодировки -> Преобразовать в UTF8 без BOM.
0
4 / 5 / 4
Регистрация: 31.03.2015
Сообщений: 145
15.03.2016, 09:42  [ТС] 10
мм, сейчас посмотрю. Я в Sublime Text делаю

Добавлено через 3 минуты
Открыл в Notepad, там кодировка стоит UTF8 без BOM
0
0 / 0 / 0
Регистрация: 09.05.2015
Сообщений: 67
15.03.2016, 09:43 11
Как вариант в .htaccess вписать AddDefaultCharset UTF-8 . Также посмотри при соединении с базой, чтоб было utf8, а не utf-8. Недавно был такой косяк.
0
4 / 5 / 4
Регистрация: 31.03.2015
Сообщений: 145
15.03.2016, 10:02  [ТС] 12
Terintenos, AddDefaultCharset UTF-8 вписан. В
PHP
1
2
$mysqli = mysqli_connect("server","username","password","nameBase");
        mysqli_set_charset($mysqli,'utf-8');
пробовал прописывать utf8 . Не помогает

Добавлено через 5 минут
Цитата Сообщение от Terintenos Посмотреть сообщение
Также посмотри при соединении с базой, чтоб было utf8, а не utf-8.
Как это посмотреть?
0
Эксперт PHP
3827 / 3178 / 1334
Регистрация: 01.08.2012
Сообщений: 10,768
15.03.2016, 10:16 13
Цитата Сообщение от Novichek_9I Посмотреть сообщение
Как это посмотреть?
В функции mysqli_set_charset, которую вы привели чуть выше.
0
4 / 5 / 4
Регистрация: 31.03.2015
Сообщений: 145
15.03.2016, 10:28  [ТС] 14
Jodah, а, ну вот я написал, что указывал в ней и utf-8, и utf8. Может я саму функцию не там пишу.
Вот кусок кода:
PHP
1
2
3
4
$connection = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
        mysqli_set_charset($connection,'utf8');         
 
    if ($connection->connect_error) die($connection->connect_error);
0
Эксперт PHP
3827 / 3178 / 1334
Регистрация: 01.08.2012
Сообщений: 10,768
15.03.2016, 10:48 15
Novichek_9I, а почему mysqli_ функция, если вы в ООП стиле подключаетесь в базе?
PHP
1
$connection->set_charset('utf8');
2
4 / 5 / 4
Регистрация: 31.03.2015
Сообщений: 145
15.03.2016, 10:52  [ТС] 16
Jodah, исправил, но блин все равно в БД не по-русски
0
Эксперт PHP
3827 / 3178 / 1334
Регистрация: 01.08.2012
Сообщений: 10,768
15.03.2016, 11:00 17
Novichek_9I, ну, магии не бывает, где-то указана неправильная кодировка. Надо продолжать поиски.
0
4 / 5 / 4
Регистрация: 31.03.2015
Сообщений: 145
15.03.2016, 11:09  [ТС] 18
Jodah, а почему, хоть что я напишу в поле, хоть "Вася", хоть "аофлаодфыоваофыало". В БД это все отображается в виде &ETH; . Может это что то значит
0
0 / 0 / 0
Регистрация: 09.05.2015
Сообщений: 67
15.03.2016, 13:21 19
Ну-с, есть 3 варианта:
1. Смени кодировку всех файлов на UTF8
2. Оставь $connection->set_charset('utf8');
3. В базе данных укажи везде также utf8 (general_ci, вроде)
Если у тебя на хостинге, так же посмотри, какое значение принимает сам домен (на некоторых хостингах встречал, что при создании базы/директории для домена нужно указывать кодировку. По дефолту она везде cp1251. Если не найдешь косяк, обратись в тех.подд хостинга, посмотри, что они ответят, если скажут, что проблема на твоей стороне (а так они обычно и говорят ), то действительно ищи еще глубже.

Помню была такая проблема, долго копался, в итоге проблема была на стороне хостинга.
0
4 / 5 / 4
Регистрация: 31.03.2015
Сообщений: 145
15.03.2016, 19:58  [ТС] 20
Terintenos, у меня локальный сервер. OpenServer.

Да я уже не знаю где копать.
1. Кодировку всех файлов проверил в Notepad, везде UTF8
2. $connection->set_charset('utf8');
3. В БД везде кодировка utf8, а сравнения utf8_general_ci
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2016, 19:58
Помогаю со студенческими работами здесь

Кракозябры вместо русских букв при выводе из БД
а как сделать чтобы русские слова выводились из бд? а то крякозябры получается

Вместо русских букв знаки вопроса при создании XML
Добрый день! В бд все таблицы в кодировке utf-8. при создании xml-файла посредством php вместо...

Вместо русских букв "??????" (вопросительные знаки)
В общеv установил &quot;aaкdvark topsites&quot;, кодировку mysql первоначально поставил cp1251 потом в...

PHP - "?" вместо русских букв
Есть проблема. Переносил бд с одного хостинга на другой. На первом все работало нормально. На...

Вместо русских символов - знаки ?????
Вместо русских символов - знаки ?????(не в ромбиках) при этом менял и .htaccess бд в utf-8 и...

Кракозябры в mysql вместо русских символов
Кодировка базы utf8. Кодировка php файла в Notepad++ utf8. Когда ввожу через Shell русский текст -...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru