0
Значение после этого символаНевозможно вставить некоторые специальные символы в mysql
Почему это происходит?
create table tmp2(t1 varchar(100));
insert into tmp2 values('beforeafter');
mysql> select * from tmp2;
+--------+
| t1 |
+--------+
| before |
+--------+
1 row in set (0.01 sec)
Я побежал затем команду и вернулся некоторой полезной информацией
mysql> SHOW FULL COLUMNS FROM tmp2;
+-------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| t1 | varchar(100) | utf8_general_ci | YES | | NULL | | select,insert,update,references | |
+-------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
1 row in set (0.00 sec)
и это,
mysql> SELECT character_set_name FROM information_schema.`COLUMNS` WHERE table_schema = "test" AND table_name = "tmp2" AND column_name = "t1";
+--------------------+
| character_set_name |
+--------------------+
| utf8 |
+--------------------+
1 row in set (0.00 sec)
Im тестирования этого в командной строке убунта/MySQL.
Наиболее вероятным объяснением поведения, которое вы наблюдаете, является * несоответствие * в наборе символов между клиентским приложением, MySQL erver и/или столбец. [joelonsoftware.com/articles/Unicode.html](http://joelonsoftware.com/articles/Unicode.html) и [kunststube.net/encoding/](http://kunststube.net/encoding). Справочное руководство по MySQL: [http://dev.mysql.com/doc/refman/5.6/en/charset.html](http://dev.mysql.com/doc/refman/5.6/en/charset.html) , Исправление может быть таким же простым, как 'SET имена 'utf8';' – spencer7593
@ spencer7593 SET имена 'utf8'; не работал. – eerrzz
Что такое символ столбца? Поскольку вы не указали его, он будет по умолчанию использоваться для таблицы. И поскольку это тоже не указано, оно будет по умолчанию для набора символов базы данных. И этот параметр мог быть по умолчанию для сервера MySQL. Я предполагаю, что клиент использует UTF-8, а строковое значение содержит допустимый символ UTF-8, который * не * действителен в наборе символов столбца. Но это всего лишь предположение. – spencer7593