在进行数据库操作时,我们经常会遇到乱码的问题,尤其是在插入语句中。这个问题的根本原因是编码不一致,数据库的编码和程序的编码不一致。本文将介绍。
1.确认数据库编码
确保数据库编码是正确的非常重要,否则操作数据库时就会遇到各种编码问题。在MySQL中,我们可以通过如下语句查询数据库编码:
SHOW VARIABLES LIKE ‘character_set_database’;
如果输出结果为UTF-8,则数据库编码是UTF-8。如果输出结果为GB2312,则数据库编码是GB2312。
2.确认程序编码
和数据库一样,程序的编码也需要确认。在PHP中,我们可以通过如下代码获取当前页面的编码:
echo mb_detect_encoding(“字符串”);
如果输出结果为UTF-8,则程序编码是UTF-8。如果输出结果为GB2312,则程序编码是GB2312。
3.在插入语句中使用utf8_encode()函数
如果程序编码和数据库编码不一致,那么我们需要在插入语句中使用utf8_encode()函数,将程序编码转换成数据库编码。例如,在PHP中,我们可以这样写插入语句:
$name = “张三”;

$name = utf8_encode($name);
$sql = “INSERT INTO `user` (name, age) VALUES (‘$name’, ‘$age’)”;
这样就能保证插入的数据编码和数据库编码一致,不会出现乱码的问题。
4.在连接数据库时设置编码
如果我们在连接数据库时设置了编码,就不必在每个插入语句中都使用utf8_encode()函数了。在MySQL中,我们可以像这样设置编码:
$conn = mysqli_connect($host, $username, $password, $database);
mysqli_set_charset($conn, ‘utf8’);
这样,连接数据库时就会自动设置编码,我们在执行插入语句时就不必再额外设置编码了。
5.在数据库中设置编码
除了在程序中设置编码外,我们还可以在数据库中设置编码。在MySQL中,我们可以通过如下语句设置数据库编码:
ALTER>香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
Oracle添加数据出现乱码怎么解决
orace一般情况下是不会出现乱码的你仔细看看你的页面和你后台的字符编码是不是设置的一样的或者你在后台输出你前台传过来的值
在MySQL数据库中插入信息时汉字显示为问号
jsp页面前加如下(gbk)
Oracle数据库中有哪些字符集,字符集之间的子集和超集关系是怎么样的?
oracle数据库的字符集有很多的,具体的也不能一一详细地列举出来了,但是,建库的时候,会有选择字符集的界面,点开下拉条,将会列出oracle所支持的所有字符集(10/12)。 超集与子集是包含和被包含的关系,超集兼容子集。
发表评论