私はjoomlaデータベースを持っています。ここでは、mySQL接続照合はutf8_general_ciです。 PHPスクリプトのデータを取り込もうとするデータベースに、(joomlaのインストールに関係しない)いくつかの追加データテーブルがあります。データベースに特殊文字を挿入する
LATER編集:私は(言語と地域固有の文字)特殊文字を挿入しようとしたとき、私はîăîșE>代わりîăîşţのように、データベースにjibberishを取得
下に確認してください。
Joomlaのデータベース内のすべての列の照合は次のとおりです。utf8mb4_unicode_ci(これはどんな違いがあれば)
奇妙なことがあれば、私は、電子メール/モバイルアプリでのデータベースの内容を示すことであり、 (ブラウザベース)、データを正しく表示します。しかし、phpmyadminパネルから手動で挿入すると、その値がテーブルに正しく表示されるため、PHPからvalusを挿入するのは適切ではないことがわかります。
<?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";
}
}
?>
このインサートは、任意の領域dependend文字と互換性を持たせるために、なされるべきであるか任意のアイデア?
その後編集: 私は、 " '%照合%' のようなショーの変数" を走った collation_connectionの - utf8_general_ci collation_database - latin1_swedish_ci collation_server - latin1_swedish_ci
これが問題だろうか?
mysql_set_charset( 'utf8mb4')を試したことがありますか。 '? – GertG
はい。そして私が次のことをするならば:mysqli_set_charset( 'utf8'); $ con-> character_set_name();を出力します。それはutf8の代わりに "Latin1"を出力します – Laureant