PHP代码如下:
echo "<li>ISBN:".$isbn."</br>书名:".$name."</br>作者:".$author."</br>";
数据由数据库中获取后赋值到$isbn。
显示乱码
加代码:
echo "<meta http-equiv='Content-Type'' content='text/html; charset=utf-8'>";
后:
怎么解决啊??
回复讨论(解决方案)
取数据之前加上:mysql_query("set names utf8");
取数据之前加上:mysql_query("set names utf8");
还是一样啊
phpmyadmin 中看到是怎样的呢?
你的数据库是用什么编码?
phpmyadmin 中看到是怎样的呢?
你的数据库是用什么编码?
utf8_general_ci
取数据之前加上:mysql_query("set names utf8");
这是代码:
//以上连接数据库mysql_set_charset("gbk");$result = mysql_query("SELECT * FROM book_list LIMIT 0 , 30" ); //查询数据库while ($bookInfo = mysql_fetch_array($result)){ //返回查询结果到数组 $isbn = $bookInfo["B_ISBN"]; //将数据从数组取出 $name = $bookInfo["B_name"]; $author = $bookInfo["B_author"];echo "<li>ISBN:".$isbn."</br>书名:".$name."</br>作者:".$author."</li>"; //输出数据}
取数据之前加上:mysql_query("set names utf8");
这是代码:
//以上连接数据库mysql_set_charset("gbk");$result = mysql_query("SELECT * FROM book_list LIMIT 0 , 30" ); //查询数据库while ($bookInfo = mysql_fetch_array($result)){ //返回查询结果到数组 $isbn = $bookInfo["B_ISBN"]; //将数据从数组取出 $name = $bookInfo["B_name"]; $author = $bookInfo["B_author"];echo "<li>ISBN:".$isbn."</br>书名:".$name."</br>作者:".$author."</li>"; //输出数据}
注释掉
//mysql_set_charset("gbk");
在echo前加上:
echo "<meta http-equiv='Content-Type'' content='text/html; charset=utf-8'>";
就好了。
而且,如果加上mysql_query("set names utf8");,全部中文都乱码了。
直接显示时,数据库读取的内容是正常的。但书名、作者乱码。
这里可以知道,你的php文件是utf8,所以加上echo "";
书名,作者这些就正常了。
然后原来读取数据库内容的变成乱码。可以肯定,数据库中的内容不是utf8格式。可用iconv转换一次看看确定问题。
// 这一句改成这样echo "<li>ISBN:".$isbn."</br>书名:".iconv('GBK','UTF-8',$name)."</br>作者:".iconv('GBK','UTF-8',$author)."</li>"; //输出数据
没事为何要加mysql_set_charset("gbk");?
难怪会这样,所以才觉得数据库里的不是UTF8
mysql_set_charset("gbk"); 等于 mysql_query("set names gbk"); 你已经转过一次,再转UTF8。。。
utf-8 编码的 书名 在 gbk 环境中会显示成 涔??
此时从数据库中读取的数据显示正常
由此可知:从数据库读取的数据是 gbk 编码的,这一点可从发出 utf-8 语言声明后,乱码情况反过来了加以佐证
按你目前的情况,你需要 $isbn = iconv('gbk', 'utf-8', $isbn); 即将读出的数据做从 gbk 到 utf-8 的编码转换
并应有 header('Content-type: text/html;charset=utf-8'); 语言声明的头
出现这种现象的原因是:
数据库为 latin1 的
字段是 utf8 的
插入是的数据是 gbk 的
由于没有在插入数据时声明字符集,所以 gbk 的内容被当做 latin1 插入到了 字段中
读出时同样也没有声明字符集,于是字段中的数据又当做 latin1 原样读回来了
其实这是很正常的,数据库本来就不该改变存储的数据
不然放进仓库的是汽车,取回时变成了摩托,那不就乱了套了吗?
对于数据库已有的数据也只有这样了,如不想放弃则需要做转码处理(很费事的)
以后再插入和读取数据时一定要注意:先执行 set names XXX 指令,注意:这个 XXX 是当前数据的字符集名
比如将 gbk 数据插入就 mysql_query("set names gbk");
将数据按 utf-8 取回就 mysql_query("set names utf8");
utf-8 编码的 书名 在 gbk 环境中会显示成 涔??
此时从数据库中读取的数据显示正常
由此可知:从数据库读取的数据是 gbk 编码的,这一点可从发出 utf-8 语言声明后,乱码情况反过来了加以佐证
按你目前的情况,你需要 $isbn = iconv('gbk', 'utf-8', $isbn); 即将读出的数据做从 gbk 到 utf-8 的编码转换
并应有 header('Content-type: text/html;charset=utf-8'); 语言声明的头
出现这种现象的原因是:
数据库为 latin1 的
字段是 utf8 的
插入是的数据是 gbk 的
由于没有在插入数据时声明字符集,所以 gbk 的内容被当做 latin1 插入到了 字段中
读出时同样也没有声明字符集,于是字段中的数据又当做 latin1 原样读回来了
其实这是很正常的,数据库本来就不该改变存储的数据
不然放进仓库的是汽车,取回时变成了摩托,那不就乱了套了吗?
对于数据库已有的数据也只有这样了,如不想放弃则需要做转码处理(很费事的)
以后再插入和读取数据时一定要注意:先执行 set names XXX 指令,注意:这个 XXX 是当前数据的字符集名
比如将 gbk 数据插入就 mysql_query("set names gbk");
将数据按 utf-8 取回就 mysql_query("set names utf8");
赞!有理有据。 分析得很好
没事为何要加mysql_set_charset("gbk");?
难怪会这样,所以才觉得数据库里的不是UTF8
mysql_set_charset("gbk"); 等于 mysql_query("set names gbk"); 你已经转过一次,再转UTF8。。。
初次接触PHP,需要连接数据库,然后度娘帮忙找到的代码。

有些朋友可能会在安装系统时不小心设置成了英文,结果所有界面都变成了英文,看都看不懂。其实我们可以在控制面板中设置语言,将语言更改为中文,下面就一起来看一下更改的方法吧。win7如何更改语言为中文1、首先点击屏幕左下角的按钮,然后选择“ControlPanel”2、找到“Clock,Language,andRegion”下的“Changedispalylanguage”3、点击下方“English”就可以在下拉菜单中选择简体中文了。4、确定之后点击“Logoffnow”注销并重启电脑。5、回来之后

有时候我们再刚刚入手安装好电脑系统之后发现系统时英文的,遇到这种情况我们就需要把电脑的语言改成中文,那么win10系统里面该怎么把电脑的语言改成中文呢,现在就给大家带来具体的操作方法。win10电脑语言怎么改成中文1、打开电脑点击左下角的开始按键。2、点击左侧的设置选项。3、打开的页面选择“时间和语言”4、打开后,再点击左侧的“语言”5、在这里就可以设置你要的电脑语言。

eclipse语言设置为中文的方法:1、打开浏览器找到语言包下载地址,并将最新的安装包地址复制;2、打开eclipse,点击“help”,然后点击安装新的插件;3、点击“Add”,在Location中粘帖网址;4、在下拉菜单中找到简体中文包,进行勾选,点击Next等待安装;5、重启eclipse即可。

Win11系统语言如何改成中文?近期有用户刚给电脑安装了最新的Win11系统,但是在使用中发现系统语言为英文,自己使用起来很吃力,为此有没有什么方法可以将系统语言改成中文呢?方法很简单,下面我们来看看这篇Win11系统语言设置为中文的方法吧。 Win11系统语言设置为中文的步骤 1、首先我们进入齿轮按钮的settings,然后找到其中的Time打开时间和语言。 2、在时间和语言中点击左边栏的Language选项,然后在右侧点击Addalanguage。 3、接着在上方搜索框输入chi

虽然Linux有LibreOffice,但是对微软的office兼容不是很好,有些排版会出现问题。而几年前,金山也开发了Linux版的WPS,不过在Ubuntu上使用,无法直接输入中文,这咋弄才可以让WPS正常输入中文呢1、打开WPS的文档,右上角的输入法已经是中文了,但是实际输入的时候,只能输入英文字母,出不了中文2、在终端输入:sudogedit/usr/bin/wps3、从第二行加上:exportXMODIFIERS="@im=fcitx"exportQT_IM_MODULE=&

在当今科技快速发展的时代,编程语言也如雨后春笋般涌现出来。其中一门备受瞩目的语言就是Go语言,它以其简洁、高效、并发安全等特性受到了许多开发者的喜爱。Go语言以其强大的生态系统而著称,其中有许多优秀的开源项目。本文将介绍五个精选的Go语言开源项目,带领读者一起探索Go语言开源项目的世界。KubernetesKubernetes是一个开源的容器编排引擎,用于自

《Go语言开发必备:5个热门框架推荐》Go语言作为一门快速、高效的编程语言,受到越来越多开发者的青睐。为了提高开发效率,优化代码结构,很多开发者选择使用框架来快速搭建应用。在Go语言的世界中,有许多优秀的框架可供选择。本文将介绍5个热门的Go语言框架,并提供具体的代码示例,帮助读者更好地理解和使用这些框架。1.GinGin是一个轻量级的Web框架,拥有快速

本文介绍的是达摩院魔搭社区ModelScope近期开源的中文CLIP大规模预训练图文表征模型,更加懂中文和中文互联网的图像,在图文检索、零样本图片分类等多个任务中实现最优效果,同时代码和模型已经全部开源,用户能够使用魔搭快速上手。模型使用入口:https://modelscope.cn/models/damo/multi-modal_clip-vit-base-patch16_zh/summaryGithub:https://github.com/OFA-Sys/Chinese-CLIP论文:


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SublimeText3 Linux new version
SublimeText3 Linux latest version

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
