PHP-数据库中的印地语数据返回为“?”&引用;
我试图从数据库中获取印地语数据,但它返回????每次都是 关于StackOverflow的其他答案被告知使用PHP-数据库中的印地语数据返回为“?”&引用;,php,api,Php,Api,我试图从数据库中获取印地语数据,但它返回????每次都是 关于StackOverflow的其他答案被告知使用mysqli\u set\u字符集($conn,'utf8')但这在我的情况下不起作用 请检查下面的代码 <?php class Quotes { public $id; public $position; public $quote; public $image_url; private $conn; private $table_name; pub
mysqli\u set\u字符集($conn,'utf8')代码>但这在我的情况下不起作用
请检查下面的代码
<?php
class Quotes {
public $id;
public $position;
public $quote;
public $image_url;
private $conn;
private $table_name;
public function __construct($db) {
$this->conn = $db;
$this->table_name = "tbl_y_test";
}
//read all data
public function getAllData() {
$sql_query = "SELECT * FROM ".$this->table_name." ORDER BY `position`";
mysqli_set_charset($conn, 'utf8');
$obj = $this->conn->prepare($sql_query);
$obj->execute();
return $obj->get_result();
}
}
?>
您应该将数据的字符集设置为UTF8。您可以在数据库级别执行此操作:
CREATE DATABASE db_name
DEFAULT CHARACTER SET UTF8;
这样,以后创建的任何表在默认情况下都将位于该字符集中
只能在表级别设置字符集(如果要将印地语数据仅存储在一个特定表中):
这样,该表中的所有文本字符串都将采用UTF8编码
或者您甚至可以对每列执行此操作(因此特定表中只有一列是UTF8编码的):
您应该将数据的字符集设置为UTF8。您可以在数据库级别执行此操作:
CREATE DATABASE db_name
DEFAULT CHARACTER SET UTF8;
这样,以后创建的任何表在默认情况下都将位于该字符集中
只能在表级别设置字符集(如果要将印地语数据仅存储在一个特定表中):
这样,该表中的所有文本字符串都将采用UTF8编码
或者您甚至可以对每列执行此操作(因此特定表中只有一列是UTF8编码的):
数据库中的数据是否正确?您正在检索的列的字符集是什么?页面输出的字符集是什么?数据库中的数据是否正确?您正在检索的列的字符集是什么?页面输出的字符集是什么?
CREATE TABLE score(
...
name VARCHAR(32) NOT NULL CHARACTER SET UTF8,
...
) ENGINE=InnoDB;