为什么编写html代码时加入<meta charset="UTF-8">会出现乱码?

为什么编写html代码时加入<meta charset="UTF-8">会出现乱码?,第1张

首先要明白,
<meta charset="UTF-8">
是设置网页文件展示时使用的字符集(编码),那其实除了网页文件展示时有编码以外,网页文件本身还有编码。必须两者统一时才不会乱码
举个例子(此处用Notepad++为例):
创建一个html文件,用Notepad++打开,先把文档结构写好
testhtml代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1></h1>
</body>
</html>
写到这儿之后,改变Notepad++的编码,改为GB2312,如下图
改好之后再修改testhtml文件,修改之后的代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>字符编码测试</title>
</head>
<body>
<h1>你好,世界!</h1>
</body>
</html>
浏览器查看testhtml,效果如下图
乱码了对吧?尝试修改网页显示的字符编码,将<meta
charset="UTF-8">修改为和Notepad++一致的GB2312
<meta charset="GB2312">
再次查看网页效果
这回正确了。
所以你将网页的显示字符集改为UTF-8说明你的编辑器可能采用的时其他字符集,你需要检查一下。
注意:
浏览器也可以设置字符集,不统一也可能导致乱码
一般建议统一使用UTF-8
使用UTF-8你乱码你需要检查到底时哪一步出了错误,是编辑器还是浏览器。
如果说网页时服务器生成的还需要将服务器的编码一并考虑进去

乱码问题发生于编码方式不统一造成的,我来说一下我遇到乱码时的查找过程1,看看项目的编码方式是否是UTF-82,看看html页面的编码方式是否是UTF-83,看看struts2的接传值编码方式是否是UTF-8,看看属性里的编码方式是否更改了。如果还是乱码我一般会在项目里直接建立一个html空页面,然后把原html的源代码复制到刚刚建立的html空页面里,这样也能解决问题。

两个问题:

HTML源文件打开乱码,说明这个文件编写的时候编码不正确,只能尝试改编码(UTF-8)

HTML没有<meta charset="UTF-8" />声明导致无法解析中文等非英文词汇

第一种,html网页源代码编码与中文字输入编码不同。
解决方法:
使用软件进行编辑HTML网页内容,推荐使用DW软件进行HTML代码编辑和开发。
尽量不要直接使用记事本进行编辑HTML代码。
第二种,如果网页设置编码是gbk的,而数据库储存数据编码格式是UTF-8的,这个时候程序查询数据库数据显示数据前进乡程序转码即可。
例如PHP程序+mysql查询显示数据转码:
1、mysql_query("SET
NAMES
'UTF8'");
//将查询数据转码为utf8,也就是转换为utf-8
2、mysql_query("SET
NAMES
'GBK'");//将查询数据转码为GBK,如gbk2312
第三种,浏览器造成乱码。
这个可能是你网页没有设置meta
charset编码造成。导致浏览器不能识别你网页默认编码类型。解决方法:
1、如果浏览器浏览时候出现网页乱码,在浏览器中找到转换编码的菜单。
在IE9浏览器中需要转码的网页空白出右键鼠标,即可选择“编码”。
傲游浏览器中浏览需要转码的网页时,菜单“查看”-->“编码”即可选择转换编码
谷歌浏览器中浏览需要转码的网页时,点击右上角“三横”图标选择“工具”-->“编码”即可选择切换网页编码达到让浏览器浏览此网页不是乱码。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13369130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存