簡體   English   中英

如何從SQL數據庫檢索UTF-8數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM