У меня есть база данных joomla, где сопоставление соединений mySQL - utf8_general_ci. У меня есть некоторые дополнительные данные в базе данных (не связанные с установкой joomla), которые я хочу заполнить данными из PHP-скрипта.Вставить специальные символы в базу данных из php
СПУСТЯ EDIT: проверьте ниже
При попытке вставки специальных символов (язык и область специальных символов) я получаю jibberish в базе данных, как Ã®ÄƒÃ®È ™ Э> вместо îăîşţ.
Сопоставление для всех столбцов в базе данных Joomla является: utf8mb4_unicode_ci (если это делает никакой разницы)
Странная вещь, что если я показать содержимое базы данных в электронной почте/мобильное приложение (на основе браузера) он корректно отображает данные. Но я вижу, что что-то не так с вставкой valus из PHP, поскольку, если я вставляю его вручную с панели phpmyadmin, значение будет правильно отображаться в таблице.
<?php header('Content-type: text/html; charset=UTF-8'); //header is specified here
$value_to_insert = addslashes($_REQUEST['value']); //get the value from the parameter
inserttask($value_to_insert); //insert the value into the datatable
function inserttask($value_to_insert)
{
$con = mysqli_connect("host",username,password,database); //set up my mysqli connection
//mysql_set_charset('utf8'); //this didn't help
if (!$con)
{
die();
}
$sql = "INSERT INTO `table` (`value`) VALUES ('".mysqli_real_escape_string($con, $value_to_insert)."')";
if($result=mysqli_query($con,$sql))
{
print "OK";
}
else
{
print "ERROR";
}
}
?>
Любые идеи о том, как должна быть сделана эта вставка, чтобы сделать ее совместимой с любым зависимым от региона символом?
Позже изменения: я побежал "показать переменные, такие как '%' % сортировки" collation_connection - utf8_general_ci collation_database - latin1_swedish_ci collation_server - latin1_swedish_ci
Может ли это быть проблема?
Вы пробовали mysql_set_charset ('utf8mb4'); '? – GertG
Да. И если я делаю следующее: mysqli_set_charset ('utf8'); print $ conf> character_set_name(); он будет распечатывать «Latin1» вместо utf8 – Laureant