[英]How to retrieve UTF-8 data from SQL database?
經過多次嘗試,我無法以正確的編碼(UTF-8)格式從數據庫中獲取數據。
這是我的connection(config.php)文件:
<?php
define("DB_HOST", "localhost");
define("DB_USER", "user");
define("DB_PASSWORD", "");
define("DB_DATABASE", "db");
$dbcon = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
?>
我的PHP表格檢索數據:
<?php
include('config.php');
$sqlget="SELECT * FROM table";
$sqldata= mysqli_query($dbcon, $sqlget) or die ('error');
mysqli_set_charset('utf8');
echo"<table>";
echo"</table";
?>
您沒有發送鏈接標識符mysqli_set_charset($dbcon , "utf8");
從PHP手冊:
bool mysqli_set_charset(mysqli $ link,字符串$ charset)
並在執行查詢之前進行設置。
在 SELECT 之后設置編碼有點晚
在運行任何查詢之前進行設置
<?php
define("DB_HOST", "localhost");
define("DB_USER", "user");
define("DB_PASSWORD", "");
define("DB_DATABASE", "db");
$dbcon = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
mysqli_set_charset('utf8');
實現這些目標的最簡單方法是運行以下任何一種方法:
// for procedural MySQL (obsolete in PHP 5.4/5.5!)
mysql_query("SET NAMES 'utf8';", $link);
// for procedural MySQLi
mysqli_query("SET NAMES 'utf8';", $link);
// for MySQLi, function notation
mysqli_set_charset($link, "utf8");
// for MySQLi, method notation
$mysqli->set_charset("utf8");
// for PDO
$pdo = new \PDO("mysql:host={$host};dbname={$database};charset=utf8", $user, $password);
這將確保檢索到的數據將以UTF-8編碼返回。
希望有幫助:)
嘗試在查詢之前設置字符集。
順序很重要。 您需要在開始執行查詢之前設置連接編碼,否則為時已晚:
mysqli_set_charset('utf8');
連接后應立即執行:
<?php
define("DB_HOST", "localhost");
define("DB_USER", "user");
define("DB_PASSWORD", "");
define("DB_DATABASE", "db");
$dbcon = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
mysqli_set_charset('utf8');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.