萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 函式:mysqli_character_set_name / client_encoding 取得連線字元集

確認目前資料庫連線使用的字元集編碼,避免中文亂碼。

mysqli 取得字元集

<?php
$mysqli = new mysqli('localhost', 'user', 'pwd', 'db');
echo '字元集: ' . $mysqli->character_set_name();  // utf8mb4

// 或程序風格
echo mysqli_character_set_name($mysqli);

PDO 取得字元集

$pdo = new PDO('mysql:host=localhost;dbname=db;charset=utf8mb4', 'user', 'pwd');
$stmt = $pdo->query('SHOW VARIABLES LIKE "character_set_connection"');
echo $stmt->fetchColumn();  // utf8mb4

設定字元集 (重要)

// mysqli
$mysqli->set_charset('utf8mb4');

// PDO (在 DSN 中指定)
$dsn = 'mysql:host=localhost;dbname=db;charset=utf8mb4';

常見字元集對照

名稱支援範圍備註
utf8mb4Unicode 全字元 (含 Emoji)MySQL 5.5.3+ 推薦
utf8BMP 字元 (無 Emoji)舊專案常見,實為 utf8mb3
latin1西歐字元預設值,中文會亂碼

排除亂碼檢查清單

  1. 資料表/欄位 CHARSET = utf8mb4
  2. 連線字元集 = utf8mb4 (SET NAMES utf8mb4 或 DSN 指定)
  3. PHP 檔案儲存為 UTF-8 無 BOM
  4. HTML <meta charset="utf-8">
  5. HTTP Header Content-Type: text/html; charset=utf-8
copyright © 萬盛學電腦網 all rights reserved