php中文保存数据库乱码怎么办

PHPz
Lepaskan: 2023-04-10 10:25:46
asal
482 orang telah melayarinya

在 PHP 中,若使用中文字符保存到数据库中,可能会出现乱码的情况。这是因为数据库和网页编码不一致,导致数据不正确地被存储。以下是一些解决办法。

  1. 数据库编码设置

首先确认数据库的编码是否为 UTF-8(或者其他支持中文的编码)。如果不是,可以在数据库中设置编码为 UTF-8。

如果使用 MySQL 数据库,在创建数据库和数据表时,需要指定编码:

CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Salin selepas log masuk
CREATE TABLE tablename ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, age INT(3) ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Salin selepas log masuk
  1. PHP 编码设置

其次,在 PHP 脚本中设置编码为 UTF-8:

header('Content-Type: text/html; charset=utf-8');
Salin selepas log masuk

也可以在 PHP 配置文件 php.ini 中设置:

default_charset = "utf-8"
Salin selepas log masuk
  1. 数据库连接设置

在连接数据库时,也需要设置编码为 UTF-8。如果使用 PDO 连接数据库,可以这样写:

$dsn = "mysql:host=localhost;dbname=dbname;charset=utf8mb4"; $dbh = new PDO($dsn, $user, $password);
Salin selepas log masuk

如果使用 MySQLi 连接数据库,可以这样写:

$mysqli = new mysqli("localhost", "user", "password", "dbname"); mysqli_set_charset($mysqli, "utf8mb4");
Salin selepas log masuk
  1. 数据编码转换

如果以上方法都不能解决问题,那么可能是保存到数据库的字符串编码和数据库编码不一致,需要进行编码转换。可使用 PHP 的 iconv 函数或 mb_convert_encoding 函数进行转换。

$str = "你好"; $str = iconv('gbk', 'utf-8', $str); //或 $str = mb_convert_encoding($str, 'utf-8', 'gbk');
Salin selepas log masuk

总结

在 PHP 中保存中文字符到数据库时,要确认数据库和网页编码一致,并在连接数据库和 PHP 脚本中设置编码为 UTF-8。如果出现乱码,可尝试进行编码转换。希望这些方法能帮助你解决问题。

Atas ialah kandungan terperinci php中文保存数据库乱码怎么办. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!