3

アラビア語のデータをmysqlデータベースに保存しようとしています.htmlドキュメントの文字セットを「utf8」に設定しました

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

MySQL の文字セットは次のように設定されています: UTF-8 Unicode (utf8)

MySQL 接続照合は次のように設定されています: utf8_general_ci

データベースとテーブルの照合順序は次のように設定されています: utf8_general_ci

さらに、php コードで$mysqli->set_charset("utf8")関数を使用して、文字セットが ut8 に設定されていることを確認しましたが、実際には何も機能していません。enctype がある html フォームを使用して、データを php スクリプトに投稿していますenctype="multipart/form-data"。画像

奇妙なことに、クエリを mysql に直接記述すると、アラビア文字は問題なく適切に保存されますが、php クエリを使用してデータを保存すると、すべての文字が間違った文字セット エンコーディングで保存されます。

助言がありますか ?

4

4 に答える 4

3

奇妙な、うまくいくはずです!

データベースへの接続が成功したら、次の行を追加してみてください。

$mysqli->query("SET NAMES 'utf8'");
$mysqli->query("SET CHARACTER SET utf8");


例えば:

$mysqli = @new mysqli('DB_HOST', 'DB_USER', 'DB_PASS', 'DB_NAME');

if($mysqli->connect_errno) die('Connection Error!');
else{
    $mysqli->query("SET NAMES 'utf8'");
    $mysqli->query("SET CHARACTER SET utf8");
}


そして、これらの META タグを PHP ページの head セクションに含めます。

<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
于 2013-09-10T13:58:49.427 に答える
0

このファイルをウェブサイトの htdocs フォルダーに「dbh.php」として保存し、インデックス ページの上部に入力して含めると、<?php include 'dbh.php';?>準備完了です。

<?php

$conn = mysqli_connect("localhost", "root", "", "database name");

if(!$conn){
    die("connection failed: ".mysqli_connect_error());
}else{
    $conn->query("SET NAMES 'utf8'");
    $conn->query("SET CHARACTER SET utf8");

}
于 2017-01-03T03:55:33.567 に答える