0

汉语/漢語の文字をデータベースに挿入しようとしていますが、????? しか取得できません。私がする時。大量の情報をオンラインで調べますが、解決策はありません。私のデータベースで文字汉语/漢語を使用して挿入クエリを実行すると、それが機能するので、私のデータベースがutf8用にセットアップされていることがわかります...私のPHPファイルで何かをしていることが問題です...どんな助けも大変感謝しています。

<?php
include 'config.php';  
header('Content-Type:text/html; charset=UTF-8');
mysqli_query("SET NAMES utf8");
mysqli_set_charset('utf8');


// check for required fields
if (isset($_POST['name'])) {
$name = mysqli_real_escape_string($link, $_POST['name']);

$result = mysqli_query($link, "INSERT INTO scores(`id` , `name`)VALUES(NULL, '$name'");
4

2 に答える 2

3

データベースが UTF-8 モードで動作していることを確認する必要があります。テーブル自体でこれを行う必要があります。文字列を挿入したとおっしゃいましたが、読み戻せるかどうかを確認しましたか? 以下の私のコメントで述べたように、UTF-8 を有効にして MySQL に接続していることを確認する必要があります。以下の回答に詳細があります。

MySQL が UTF-8 を適切に処理するようにする方法

さらに、PHP ファイル自体が UTF-8 形式で保存されていることを確認してください。最後に、HTML ページが utf-8 を使用するように正しく設定されていることを確認してください。

<meta charset="utf-8"> 対 <meta http-equiv="Content-Type">

于 2013-08-24T14:37:11.553 に答える
1

これが私が頼りにしている古いチートシートです。この情報の一部は古くなっていることに注意してください

header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');

// 従来の MySQL_query のみ

mysql_set_charset('utf8',$con);

// MySQLi のみ

$mysqli->set_charset("utf8")

もチェックしてください: http://tympanus.net/codrops/2009/08/31/solving-php-mysql-utf-8-issues/

PHP はネイティブで UTF-8 に対応していませんでした。以下のような二次関数に依存する必要がありました。左側の関数はすべて、数年前から UTF-8 対応になっていると確信しています。

mail()                -> mb_send_mail()
strlen()              -> mb_strlen()   
strpos()              -> mb_strpos()
strrpos()             -> mb_strrpos()
substr()              -> mb_substr()
strtolower()          -> mb_strtolower()
strtoupper()          -> mb_strtoupper()
substr_count()        -> mb_substr_count()
htmlentities($var)    -> htmlentities($var, ENT_QUOTES, 'UTF-8')
于 2013-08-26T14:42:44.673 に答える