Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
ASKazin
7 / 7 / 3
Регистрация: 03.02.2016
Сообщений: 52
Записей в блоге: 3
1

Непонятный глюк с буквой И

16.02.2016, 12:20. Просмотров 508. Ответов 9
Метки нет (Все метки)

При записи в таблицу(записываю текст) вместо буквы И(именно заглавной) отображаются(при выводе) два символа �?

Остальные буквы записываются и выводятся нормально.

Куда копать?

БД и таблицы utf8_general_ci

Добавлено через 10 минут
А а Б б В в Г г Д д Е е Ё ё Ж ж З з �? и Й й К к Л л М м Н н О о П п Р р С с Т т У у Ф ф Х х Ц ц Ч ч Ш ш Щ щ Ъ ъ Ы ы Ь ь Э э Ю ю Я я
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2016, 12:20
Ответы с готовыми решениями:

Непонятный глюк
Собрался реализовать простенькую програмку на qt и получил такое, хз может кто сталкивался. ...

непонятный глюк
все опять в вэб. имею на базу права манагера. через вэб авторизовам. могу создавать документы через...

Непонятный глюк.
Какой-то непонятный глюк образовался, никак побороть не могу :blink: В общем есть форма, в ней было...

Непонятный глюк !
Доброго времени суток уважаемые форумчане! Написал панель инструментов для IE с использованием...

Непонятный глюк C#
Объясните пожалуйста, почему в результате выполнения нижеприведенного кода в комбобоксе Dlin в...

9
Laroux
170 / 165 / 75
Регистрация: 21.11.2014
Сообщений: 1,487
17.02.2016, 11:19 2
PHP
1
2
3
mysql_query("SET NAMES 'utf8'"); 
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
0
ASKazin
7 / 7 / 3
Регистрация: 03.02.2016
Сообщений: 52
Записей в блоге: 3
17.02.2016, 11:22  [ТС] 3
Laroux, я использую PDO.
PHP
1
2
3
4
5
6
7
8
try {
    $db = new PDO('mysql:host=localhost;dbname=' . DATABASE, DBUSER, DBPASSWORD, array(
        PDO::ATTR_PERSISTENT => true
    ));
} catch (PDOException $e) {
    print "Ошибка соединения!: " . $e->getMessage() . "<br/>";
    die();
}
Подскажите как применить
Цитата Сообщение от Laroux Посмотреть сообщение
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
в моем случае.
0
Laroux
170 / 165 / 75
Регистрация: 21.11.2014
Сообщений: 1,487
17.02.2016, 11:28 4
не силен в PDO, но вроде как так (честно скажу - гуглил)
PHP
1
2
3
4
5
6
7
8
9
10
11
try {
    $db = new PDO('mysql:host=localhost;dbname=' . DATABASE, DBUSER, DBPASSWORD, array(
        PDO::ATTR_PERSISTENT => true
    ));
} catch (PDOException $e) {
    print "Ошибка соединения!: " . $e->getMessage() . "<br/>";
    die();
}
$db->exec("set names utf8");
$db->exec("SET CHARACTER SET 'utf8'");
$db->exec("SET SESSION collation_connection = 'utf8_general_ci'");
0
17.02.2016, 11:28
ASKazin
7 / 7 / 3
Регистрация: 03.02.2016
Сообщений: 52
Записей в блоге: 3
17.02.2016, 11:30  [ТС] 5
Laroux, все поломалось.
РћРћРћ "Р*лот"
и поиск по бд теперь тоже не работает.

Буду разбираться дальше.
0
Laroux
170 / 165 / 75
Регистрация: 21.11.2014
Сообщений: 1,487
17.02.2016, 11:31 6
да, погуглите. У Вас с кодировками 100% шняга.
0
ASKazin
7 / 7 / 3
Регистрация: 03.02.2016
Сообщений: 52
Записей в блоге: 3
17.02.2016, 11:40  [ТС] 7
Цитата Сообщение от Laroux Посмотреть сообщение
У Вас с кодировками 100% шняга.
Самое интересное что это появилось после того как был добавлен функционал загрузки файлов.
Есть карточка заказа, она сохранялась прекрасно(проблем с кодировкой не было), добавил возможность добавлять файлы при создании заказа и вот, буква И начала глючить
0
Laroux
170 / 165 / 75
Регистрация: 21.11.2014
Сообщений: 1,487
17.02.2016, 11:41 8
а как реализовали сие?
0
ASKazin
7 / 7 / 3
Регистрация: 03.02.2016
Сообщений: 52
Записей в блоге: 3
17.02.2016, 11:49  [ТС] 9
Laroux, было вот это:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* Если все хорошо, пишем данные в базу */
    $sql2 = 'INSERT INTO `' . DBPREFIX . 'orders`
                        VALUES(
                                "",
                                :content,
                                :o_type,
                                :o_section,
                                :o_company,
                                :add_date,
                                CURRENT_TIMESTAMP,
                                :end_date
                                )';
    // Подготавливаем PDO выражение для SQL запроса
    $stmt = $db->prepare($sql2);
    $stmt->bindValue(':content', $_POST['content'], PDO::PARAM_STR);
    $stmt->bindValue(':o_type', $_POST['o_type'], PDO::PARAM_STR);
    $stmt->bindValue(':o_section', $_POST['o_section'], PDO::PARAM_STR);
    $stmt->bindValue(':o_company', $r_company, PDO::PARAM_STR);
    $stmt->bindValue(':add_date', $add_date, PDO::PARAM_STR);
    $stmt->bindValue(':end_date', $_POST['end_date'], PDO::PARAM_STR);
    $stmt->execute();
    $newID = $db->lastInsertId();
Потом ниже добавил это:
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
30
31
32
33
34
35
36
37
38
39
40
41
$ext = array(".gif", ".jpg", ".jpeg", ".png", ".tif", ".pdf");
    $folder = '/***/uploads/orders/';
    $result = count($_FILES);
 
    if ($result > 20) {
        echo '<div class="alert alert-danger" role="alert">Слишком много файлов!</div>';
    } else {
 
        for ($i = 0; $i < count($_FILES['uploadFile']['name']); $i++) {
 
            // Получаем расширение файла
            $file_ext[$i] = strtolower(strrchr($_FILES['uploadFile']['name'][$i], '.'));
            // Генерируем случайное число
            $file_name = uniqid(rand(10000, 99999));
            // Формируем путь на сервере
            $uploadedFile[$i] = $folder . $file_name . $file_ext[$i];
            $fileName = $file_name . $file_ext[$i];
 
            if (!in_array($file_ext[$i], $ext)) {
                echo "<div class=\"alert alert-danger\" role=\"alert\">Такое нельзя загружать!</div>";
            } else {
 
                $sql3 = 'INSERT INTO `' . DBPREFIX . 'files` VALUES("",:file, :order_num,"")';
                $stmt = $db->prepare($sql3);
                $stmt->bindValue(':file', $fileName, PDO::PARAM_STR);
                $stmt->bindValue(':order_num', $newID, PDO::PARAM_INT);
                $stmt->execute();
 
                if (is_uploaded_file($_FILES['uploadFile']['tmp_name'][$i])) {
                    if (move_uploaded_file($_FILES['uploadFile']['tmp_name'][$i], $uploadedFile[$i])) {
                        echo "<div class=\"alert alert-success\" role=\"alert\">Файл загружен.</div>";
                    } else {
                        echo "<div class=\"alert alert-danger\" role=\"alert\">Во  время загрузки файла произошла ошибка.</div>";
                    }
                } else {
                    echo "<div class=\"alert alert-danger\" role=\"alert\">Файл не  загружен.</div>";
                }
            }
        }
    }
    // Окончание обработчика загрузки файлов
и буква И поломалась. Код не совсем изящный, но работает.
0
Laroux
170 / 165 / 75
Регистрация: 21.11.2014
Сообщений: 1,487
17.02.2016, 12:01 10
странно
0
17.02.2016, 12:01
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2016, 12:01

непонятный глюк Attiny13
Давно не связывался с авр, а тут приспичело. Писал и отлаживал программку на аттини13v, купленной...

Try catch непонятный глюк
void xz() { try { throw(1); } catch (...) { printf(&quot;-&gt; 1\n&quot;); try { throw(1); }...

неприятныйт непонятный глюк
сервер лотуса был премещен с одной машины на другую и видимо поэтому происходит следующий глюк: ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru