Как я могу изменить столбец для поддержки Unicode - PullRequest
0 голосов
/ 03 марта 2019

Я создал простую таблицу базы данных с именем players:

CREATE TABLE player (
    id              int(10)
                    NOT NULL
                    AUTO_INCREMENT
                    PRIMARY KEY,

    name            varchar(256)
                    NOT NULL
);

ALTER TABLE  players
    CHANGE name name
        varchar(256)
        CHARACTER SET utf8mb4
        COLLATE utf8mb4_unicode_ci;

Я хочу вставить эту запись в базу данных '?????', поэтому я набираю

INSERT INTO player (name) VALUES ("?????")

Однако,после вставки значение имени становится '???????????'.

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

Большинство имен являются обычными символами ASCII, но иногда яесть эти причудливые символы Юникода.

1 Ответ

0 голосов
/ 03 марта 2019

Как обсуждалось в комментариях: вы правильно изменили свою таблицу, поэтому в столбец name принимаются символы utf8.

В это MySQL 5.7 DB Fiddle ,Строка '?????' правильно вставлена ​​и отображается.

Весьма вероятно, что проблема, с которой вы сталкиваетесь, от вашего клиента, который неправильно передает данные на сервер MySQL.

Так каквы используете PHP с расширением mysqli, вы можете установить клиентский набор символов по умолчанию для соединения, используя функцию mysqli::set_charset :

$conn->set_charset("utf8mb4");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...