я провел весь день, пытаясь понять это, я надеюсь, что вы можете помочьУсеченный строка в тузд вставки
ПРОБЛЕМА: вставка «Cosio» в базе данных MySQL
, что происходит, что строка урезается на акценте так вставляет только «Cos»
если я следующее: echo mb_detect_encoding($_POS['name'], "auto");
это показать UTF-8
Чтение некоторого поста здесь и там я последовал некоторые советы апа d сделал следующий
mysql database : collation = utf8_general_ci
mysql table: collation = utf8_general_ci
mysql field: collation = utf8_general_ci
Я использую CodeIgniter рамку и моя Conection базы данных является следующим:
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'codeigniter',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => false,
'failover' => array(),
'save_queries' => TRUE
);
на апаче конфигурацию я также добавил AddDefaultCharset utf-8
также объявил HTML тег <meta charset="UTF-8">
, и я прочитал и прочитал несколько сообщений SO, но без успеха. Что мне не хватает?
UPDATE: . Я приближаюсь к проблеме, прежде чем делать запрос на вставку. Я дезинфицирую все переменные post, как это.
$ready_for_insert = ucwords(strtolower(filter_var($_POST['name'], FILTER_SANITIZE_STRING)));
, если я удаляю фильтр, дезинфицирующую строку, все работает хорошо. Я делаю это, чтобы очистить строку от любых тегов или ввода malicius. Я не знаю, удалю ли я его.
Как о вашей связи DB? – tadman
Вы также задали набор символов ваших столбцов? – chris85
, так как я использую codeigniter my db conection char_set установлен в utf8, как вы можете видеть по приведенному выше коду. Я также добавил $ DB-> simple_query ('SET NAMES \' utf8 \ ''); по классу DB, но все равно он обрезает –