Xnova

 
С базы.В базе русские буквы пишутся так:
upload_2019-11-25_21-36-52.png

В игре выводит все норм.
А если как в админке запись такая:
upload_2019-11-25_21-37-14.png

То выводит "????"
Файлы все в UTF8 без BOM

При этом база в UTF8general_ci
 
Последнее редактирование:
При уста
С базы.В базе русские буквы пишутся так:
Посмотреть вложение 4837
В игре выводит все норм.
А если как в админке запись такая:
Посмотреть вложение 4838
То выводит "????"
Файлы все в UTF8 без BOM

При этом база в UTF8general_ci
Как вариант при коннекте к базе админки где ты указываешь пасс пропиши усиленно кодировку в которой база будет читаться.
Код:
mysql_query("SET NAMES CP1251");
или UTF-8
 
При уста

Как вариант при коннекте к базе админки где ты указываешь пасс пропиши усиленно кодировку в которой база будет читаться.
Код:
mysql_query("SET NAMES CP1251");
или UTF-8
Вот так конектится к базе он.Лог и пасс ввожу в другом абсолютно файле.
Как не пытался тут кодировку писать,скрипт сразу падает.
PHP:
<?php

namespace Xcms;

/**
* Абстрактный класс для описания интерфейса взаимодействий с базой данных
* @author AlexPro
* @copyright 2011 - 2013
* ICQ: 8696096, Skype: alexprowars, Email: [email protected]
*/

class db
{
    /**
     * @var \Xcms\database\mysqli
     */
    private static $class;

    function __construct()
    {
        $classname = 'Xcms\database\\'.DB_DRIVER;

        self::$class = new $classname(SQL_SERVER, SQL_LOGIN, SQL_PASSWORD, SQL_DB_NAME);
    }

    private function __clone()
    {}

    /**
     * Возвращает имя текущей базы данных
     * @static
     */
    public static function db_name ()
    {
        return self::$class->db_name();
    }

    /**
     * Проверяет, существует ли соединение с базой данных
     * @static
     */
    public static function isConnected ()
    {
        return self::$class->isConnected();
    }

    /**
     * Выполнение запроса к базе данных
     * @static
     * @param string $query Текст SQL запроса
     * @param bool $fetch Возвращать ли ассоциативный массив с результатом запроса
     * @return array|\mysqli_result
     */
    public static function query ($query, $fetch = false)
    {
        return self::$class->query($query, $fetch);
    }

    /**
     * Возвращает ассоциативный массив с результатом запроса
     * @static
     * @param \mysqli_result $result Объект выборки из базы данных
     * @return array
     */
    public static function fetch_assoc ($result)
    {
        return self::$class->fetch_assoc($result);
    }

    /**
     * fetch_assoc alias
     * @param \mysqli_result $result
     * @return array
     */
    public static function fetch ($result)
    {
        return self::$class->fetch_assoc($result);
    }

    /**
     * Возвращает ассоциативный и нумерованный массивы с результатом запроса
     * @static
     * @param \mysqli_result $result Объект выборки из базы данных
     * @return array
     */
    public static function fetch_array ($result)
    {
        return self::$class->fetch_array($result);
    }

    /**
     * Возвращает количество строк результата запроса
     * @static
     * @param \mysqli_result $result Объект выборки из базы данных
     * @return int
     */
    public static function num_rows ($result)
    {
        return self::$class->num_rows($result);
    }

    /**
     * Возвращает id последней вставленной строки
     * @static
     */
    public static function insert_id ()
    {
        return self::$class->insert_id();
    }

    /**
     * Возвращает результат работы запроса в виде индексированного массива
     * @static
     * @param object $result Объект выборки из базы данных
     * @param bool|string $field Поле ключа массива
     * @return array
     */
    public static function extractResult ($result, $field = false)
    {
        return self::$class->extractResult($result, $field);
    }

    /**
     * Возвращает первый элемент массива
     * @param $result
     * @return mixed
     */
    public static function first ($result)
    {
        if (is_array($result) && count($result) > 0)
            return array_shift($result);
        else
            return false;
    }

    /**
     * Экранирует текст SQL запроса
     * @static
      * @param string $string Строка SQL запроса
     * @return string
     */
    public static function escape_string ($string)
    {
        return self::$class->escape_string($string);
    }
}

new db;
?>
 
  1. Оригинальное API MySQL (функции mysql_) устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0.
  2. Для улучшенного модуля MySQL (MySQL Improved) предпочтительным способом является использование метода .

    ...
    $mysqli->set_charset('utf8');
    ...
    или

    ...
    mysqli_set_charset($link,'utf8');
    ...
    Использование для этих целей метода (например:SET NAMES 'utf8') не рекомендуется.

  3. В PDO следует указывать кодировку соединения в параметре dsn при создании экземпляра класса работы с бд:

    ...
    $dsn ='mysql:dbname=DB;host=HOST;charset=utf8';
    $pdo =new \PDO($dsn, $user, $password, $options);
 
Последнее редактирование:
В файле попробуй сразу после коннекта к базе прописать $mysqli->set_charset('utf8'); или $mysqli->set_charset('cp1251');
 
Включи показ предупреждений и ошибок PHP
Вверху файла типа такого
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

 
С базы.В базе русские буквы пишутся так:
Посмотреть вложение 4837
В игре выводит все норм.
А если как в админке запись такая:
Посмотреть вложение 4838
То выводит "????"
Файлы все в UTF8 без BOM


При этом база в UTF8general_ci
Крч блэд
мы уже в 2к20 а кодировка для кого-то еще являеться сикретом,

Вот это крц
Посмотреть вложение 4837
Кодировка 1251 кирилица отображенная как ANSI

При этом база в UTF8general_ci
Эт ищо ничего не значит, смотри кодировку столбца

ты забыл сказать то что выходит из базы данных отличаеться от сгенерированного текста в ПоХнаПэ?

В случае если текст страницы нормальный, а из базы х*ня вылезает, значит нада курить кодировку базы

кодировка может быть еще не правильно отображена

сматри в хеадерах которые отправляет сервер в Ф12 консоли разработчика
Eid7p9D.png


Эт када кароч Сервак гаварит браузеру в какой кодировке отображать сает
 
Крч блэд
мы уже в 2к20 а кодировка для кого-то еще являеться сикретом,
Так вот...в базе кривые символы,на сайте все отлично.
Но если в базу ввести русское слово,на сайте выведет ???
Хеадеры utf8 пишутся вроде
 
Попробуй базе админики сменить кодировку как вариант
 
да тупой создай бд заново в правельной кодировке а потом залей еще раз свой советский думп скуля!
не в 2005м же вконцетаконцов!
Иди в свой двар умничай,школяр.
База изначально в нужной кодировке,умник мля.
 
У столбцов тоже все верно
upload_2019-11-27_11-19-5.png

В общем магия)Даже перезаливал уже базу,в новую таблицу,UTF8 тоже толка ноль
P.S Фиг с ним,забью пока.Починию админку и пофигу)
Главное что все работает и так.Позже мб разберусь
 
Последнее редактирование:
Решилось интересным образом.В my.cnf прописал конфигурацию сервера:
Код:
[mysqld]
character-set-server = utf8
collation-server = utf8_unicode_ci

И теперь все стало отлично.
Так что именно сами таблицы и база не причем были,сервак по умолчанию гнал все почему-то через latin1,видимо забыл настроить после установки Ubuntu на сервер.
 
Решилось интересным образом.В my.cnf прописал конфигурацию сервера:
Код:
[mysqld]
character-set-server = utf8
collation-server = utf8_unicode_ci

И теперь все стало отлично.
Так что именно сами таблицы и база не причем были,сервак по умолчанию гнал все почему-то через latin1,видимо забыл настроить после установки Ubuntu на сервер.
полезно но смотри в сторону дебиана ибо убунта не айс совсем не айс для класса программирования в школе тока сойдет
 

Похожие темы

Сверху