Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
12 / 12 / 1
Регистрация: 16.07.2012
Сообщений: 777

Крякозябры при чтении из таблицы

16.11.2018, 09:41. Показов 1130. Ответов 4

Студворк — интернет-сервис помощи студентам
Добрый день.
Всё перевел в UTF-8. Даже таблицу пробовал в разных кодировках UTF-8. И кажется, что всё в идеале, но выдаются крякозябры, явно связанные с кодировкой.
Вот файл test.php:
PHP/HTML
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
30
<?php
//Open a new connection to the MySQL server
$mysqli = new mysqli('localhost','root','','test_db');
 
//Output any connection error
if ($mysqli->connect_error) {
    die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
 
//MySqli Select Query
$results = $mysqli->query("SELECT * FROM mp_charact"); // запрос на выборку
$columns_count = $results->field_count;
while($row = $results->fetch_assoc())
{
?>
 
<div style="float:left; border:#CCC 1px solid; margin:5px; padding:5px 5px 0 5px; float:left;">
 
<?
for ($ci = 0; $ci < $columns_count; $ci++) {
$columns_name[$ci] = $results->fetch_field_direct($ci)->name;
echo $rowarr[$row['id']][$columns_name[$ci]] = $row[$columns_name[$ci]].'; ';
} ?>
</div>
<? }
// Frees the memory associated with a result
$results->free();
// close connection
$mysqli->close();
?>
Вот таблица:
SQL
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
-- phpMyAdmin SQL Dump
-- version 4.8.3
-- https://www.phpmyadmin.net/
--
-- Хост: 127.0.0.1:3306
-- Время создания: Ноя 16 2018 г., 09:25
-- Версия сервера: 8.0.12
-- Версия PHP: 7.2.10
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
 
--
-- База данных: `test_db`
--
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `mp_charact`
--
 
CREATE TABLE `mp_charact` (
  `id` INT(5) UNSIGNED NOT NULL,
  `id_act` INT(1) NOT NULL,
  `price_rozn` INT(5) NOT NULL,
  `price_opt` INT(5) NOT NULL,
  `price_old` INT(5) NOT NULL,
  `size` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `color` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `filler` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `category` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `img_file_name_begin` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `_brand` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `brand_` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `country` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `brand_rus` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `card_description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `add_img_on_off` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `add_img_1` INT(1) NOT NULL,
  `add_img_descr_1` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `add_img_2` INT(1) NOT NULL,
  `add_img_descr_2` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `add_img_3` INT(1) NOT NULL,
  `add_img_descr_3` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `add_img_4` INT(1) NOT NULL,
  `add_img_descr_4` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `add_img_5` INT(1) NOT NULL,
  `add_img_descr_5` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `add_img_6` INT(1) NOT NULL,
  `add_img_descr_6` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `add_img_7` INT(1) NOT NULL,
  `add_img_descr_7` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;
 
--
-- Дамп данных таблицы `mp_charact`
--
 
INSERT INTO `mp_charact` (`id`, `id_act`, `price_rozn`, `price_opt`, `price_old`, `size`, `color`, `filler`, `category`, `img_file_name_begin`, `_brand`, `brand_`, `country`, `brand_rus`, `card_description`, `add_img_on_off`, `add_img_1`, `add_img_descr_1`, `add_img_2`, `add_img_descr_2`, `add_img_3`, `add_img_descr_3`, `add_img_4`, `add_img_descr_4`, `add_img_5`, `add_img_descr_5`, `add_img_6`, `add_img_descr_6`, `add_img_7`, `add_img_descr_7`) VALUES
(1603, 1, 6500, 4200, 13000, 'S,M,L,XL,XXL', 'чёрный', '100% лебяжий пух', 'Детский комбинезон', 'Detsky-kombinezon', '-Moncler', 'Moncler ', 'Китай', 'Монклер', '<p class=\"descr\"><strong>Детский зимний комбинезон Монклер</strong> классического черного цвета. На капюшоне опушка &mdash; натуральный мех финского енота. Ткань изделия &mdash; глянцевый нейлон, легко подвергается удалению загрязнений без каких-либо усилий. Комбинезоны данного бренда идеально подходят для наших морозов, а также и для наших слякотных зим. Для самых маленьких предусмотрены пинетки и варежки, которые легко пристегиваются и отстёгиваются.</p>', '1', 1, 'Вид сзади.', 0, '', 0, '', 0, '', 0, '', 6, 'Завёрнутый рукав и завёрнутая штанина.', 7, 'На кресле.'),
(1607, 1, 6500, 4200, 13000, 'S,M,L', 'белый', '100% лебяжий пух', 'Детский комбинезон', 'Detsky-kombinezon', '-Moncler', 'Moncler ', 'Китай', 'Монклер', '<p class=\"descr\"><strong>Зимний детский комбинезон</strong> от легендарного бренда <i>Монклер</i> нежного белого цвета. Внутри &mdash; натуральный лебяжий пух, защитит вашего ребенка от холодов, а легкость изделия, приведет ваше чада в восторг. На капюшоне &mdash; пышный натуральный мех финского енота, который можно отстегнуть. Для самых маленьких &mdash; пинеток и варежки.</p>', '1', 0, '', 0, '', 3, 'Вид спереди.', 4, 'Капюшон.', 0, '', 0, '', 0, ''),
(1608, 0, 6500, 0, 13000, 'S,M,L,XL,XXL', 'серый', '100% лебяжий пух', 'Детский комбинезон', 'Detsky-kombinezon', '-Moncler', 'Moncler ', 'Китай', 'Монклер', '', '', 0, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0, '');
 
--
-- Индексы сохранённых таблиц
--
 
--
-- Индексы таблицы `mp_charact`
--
ALTER TABLE `mp_charact`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `id` (`id`),
  ADD KEY `id_2` (`id`);
 
--
-- AUTO_INCREMENT для сохранённых таблиц
--
 
--
-- AUTO_INCREMENT для таблицы `mp_charact`
--
ALTER TABLE `mp_charact`
  MODIFY `id` INT(5) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17165;
COMMIT;
 
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
В общем, не знаю, что делать.
Делаю в OpenServe BASIC: Apache7.2x64, PHP7.2x64, MySQL5.8x64 В Денвере таких проблем нет.
Как исправить проблему с кодировкой?
Заранее благодарен за ответ.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.11.2018, 09:41
Ответы с готовыми решениями:

Нечастые крякозябры при чтении из бинарного файла
Вообщем читаю строки с бинарника и вылазит строки например жирафа(верхнее)@ тигр(нижнеее)@ кролик (здесь квадратик,забыл...

Крякозябры вместо русских буква при чтении из INI файла
При чтении каких-то значений на русском языке из INI файла вместо русских букв появляются крякозябры, когда с английским языком всё просто...

При чтении каких-то значений на русском языке из INI файла вместо русских букв появляются крякозябры, когда с
При чтении каких-то значений на русском языке из INI файла вместо русских букв появляются крякозябры, когда с английским языком всё просто...

4
 Аватар для Sheriffk018
5 / 4 / 1
Регистрация: 02.01.2017
Сообщений: 101
16.11.2018, 09:47
alanat, В .htaccess пропишите :AddDefaultCharset utf-8.
Можете в настройках OS -> Кодировки -> Http сервер выбрать utf-8.
Или в самом файле указать header('Content-Type: text/html; charset=utf-8');.
0
133 / 118 / 34
Регистрация: 04.04.2018
Сообщений: 593
16.11.2018, 09:54
Лучший ответ Сообщение было отмечено alanat как решение

Решение

alanat, После подключения к БД
PHP
1
2
3
4
5
                      mysqli_set_charset($link, 'utf8');     
                      mysqli_query ($link,"set character_set_client='utf8'");
                      mysqli_query ($link,"set character_set_results='utf8'");
                 mysqli_query ($link,"set collation_connection='utf8_general_ci'");
                 mysqli_character_set_name($link);
utf8_general_ci кодировка полей.
1
12 / 12 / 1
Регистрация: 16.07.2012
Сообщений: 777
16.11.2018, 10:07  [ТС]
Цитата Сообщение от u4en1k Посмотреть сообщение
После подключения к БД
Вот, блин, помогло! Спасибо.
А почему в Денвере всё без проблем работает?
0
133 / 118 / 34
Регистрация: 04.04.2018
Сообщений: 593
16.11.2018, 10:23
alanat, Пожалуйста. В денвере кодировка windows-1251
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.11.2018, 10:23
Помогаю со студенческими работами здесь

Непонятные символы при чтении гугл таблицы
При чтении гугл таблицы вылазит вот такая дичь (см. картинку), при том, что кодировка указана. Вот код: import requests import csv ...

При чтении таблицы выдает System.Byte[]
Всем доброго времени! Прошу посоветовать решение. Существует таблица, в которой поле _IDRRef имеет формат данных как binary(16). ...

При чтении из таблицы Excel не читаются текстовые значения
Возникла странная проблема с файлом эксель. Имеется таблица с 6 колнками: Номер, инвентарный номер, Заглавие и автор, Год выпуска, Отдел,...

Как считать таблицу свойств без id при чтении данных из таблицы main в Java Spring
Имеюся две таблицы (два Entity) Первое - это основная таблица с данными @Entity @Table(name = &quot;tblMain&quot;) public class Car...

"Нарушение прав доступа при чтении по адресу" при чтении структур из бинарного файла
Пытаюсь разобраться со структурами в бинарных файлах. Допустим, есть массив структур. Записываю его в бинарный файл (закомментированный...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru