Mba*_*rry 5 html php mysql character-encoding
当我使用phpmyadmin看到存储在mysql数据库中的数据时,字符的存储方式与éàç一样,但是当我使用php在具有以下结构的html文档上显示这些数据时:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我得到了方形而不是重音字符,但是,我没有在静态内容上的任何重音字符的问题,这些字符尚未从同一页面中的mysql加载.
当我看到页面的源代码时,它们看起来是完全相同的!例如:
源代码上的部分静态数据显示为:
éçà
Run Code Online (Sandbox Code Playgroud)
mysql原始数据的一部分:
éçà
Run Code Online (Sandbox Code Playgroud)
我试过更换
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)
同
<meta http-equiv="Content-Type" content="text/html; charset=windows-1552" />
Run Code Online (Sandbox Code Playgroud)
结果我得到一个固定的mysql,静态与正方形!
任何提示?
这是非常常见的字符集问题,您需要手动为MySQL连接设置连接编码(这些应该是您在建立连接后执行的第一个查询):
SET NAMES utf8;
SET CHARACTER SET utf8;
Run Code Online (Sandbox Code Playgroud)
并确保每个表都CHARACTER SET设置为UTF-8.
或者您也可以更新服务器配置.