从后台读取数据时,通常会出现乱码情况,比如“汉字”变成“?”等,造成这种情况的原因通常是编码设置不对,解决方法如下:
第一种方法:在php中添加如下代码,将编码格式设为“utf-8”,代码如下:
header("Content-Type: text/htmlcharset=UTF-8")
第二种方法:在php中添加另外一行代码,同样用来转码,代码如下:
$conn = mysqli_connect($servername, $username, $password, $mysqlname)
$conn->query("SET NAMES utf8")
该种情况是先创建链接,之后再转码。
另外,在使用数据库时,直接手动(非代码)建表,通常会在表中输入汉字时,浏览时无法显示或显示为“?”,造成这种情况的原因也是编码问题,解决方案如下:
在建表或建库时,表和库的编码格式一定要统一,设置成:“utf8_general_ci”,如下图:
jsp读取数据乱码原因如下:1、JSP连接数据库语句指定的编码不正确
解决方案:在JSP连接数据库的语句中,带上useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
2、JSP页面没有指定数据提交的编码,就会造成乱码:
解决方案:这种乱码的情况,只需在页面开头加上request.setCharacterEncoding("GBK")指定提交的即可。
一般是web服务器页面的编码与数据库不一致导致比如做一些设置<%@Language=JScript @CodePage=936%>
1,<%@codepage="65001"%>
2,<http-equiv="Content-Type" content="text/htmlcharset=UTF-8">
3,Session.CodePage = 65001
4,文件存成 UTF-8
大部分数据库都支持以unicode编码方式,
所以解决与数据库之间的乱码问题比较明智的方式是直接使用unicode编码与数据库交互。
很多数据库驱动自动支持unicode,如Microsoft的SQLServer驱动。
其他大部分数据库驱动,可以在驱动的url参数中指定,如mm的mysql驱动:
jdbc:mysql://localhost/WEBCLDB?useUnicode=true&characterEncoding=GBK。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)