当前位置:   article > 正文

浏览器的编码问题_浏览器编码

浏览器编码

Chrome的编码:
F12打开开发者模式,在控制台中输入如下命令来查看浏览器的编码:
在这里插入图片描述
同样的方法在edge中查看:
在这里插入图片描述
若用记事本创建一个文件,并包含中文内容,则两个浏览器都可以正常打开,没有乱码。
首先要明白上图中为什么浏览器的编码不同
原因是:浏览器是根据http响应消息头部中的 Content-type: text/html; charset=GB2312 来决定使用何种编码解释应答,也就是说apache服务器仍然用GB2312编码传递数据。

  • 下图是我们查看的响应头部信息:其中编码为“UTF-8”
    在这里插入图片描述
  • 下图是在控制台中验证
    在这里插入图片描述
    那这个响应头部的编码是由什么决定的

响应是由服务器做出的,所以一定和服务器配置有关。在Apache中的httpd.conf文件中可添加AddDefaultCharset UTF-8来将编码设置为utf-8,但问题是自己写的gbk编码的文件同样会被编码为utf-8,中文会乱码,无法满足各种编码的需求。所以一般不添加,这样让写代码的人在代码中实现,决定用什么编码
例如下面的代码,告诉浏览器用gbk

header("Content-type: text/html; charset=gbk");
  • 1
  • 下图就是没有显示

再将Apache中的httpd.conf文件中添加AddDefaultCharset UTF-8 试一下

查看自己物理机系统的编码:
在这里插入图片描述
这里的936表示的就是GBK。

  • 现在编写一个php文件(文件的编码为ansi),如图:
<!DOCTYPE html>
<html>
<head>

</head>
<body>

<?php
echo "你好";
?>

</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在浏览器访问,运行效果如下如:
在这里插入图片描述

  • 如果将文件的编码改为utf-8,运行效果如下:
    在这里插入图片描述
    造成这种原因是:编写php.php文件时的编码为utf-8,而浏览器是用gbk编码解读的,就会造成乱码

中文的 GDK 编码占2字节,UTF-8 编码占3字节,所以在utf-8写的“你好”两个字,转变为“浣犲ソ” 三个字。

但是如果将编码设置为带有BOM的UTF-8则不会出现乱码

在这里插入图片描述

那如何用utf-8写文件,并被浏览器正确运行?

  • 创建一个如下php文件(编码为utf-8,在代码中实现)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
echo "你好";
?>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在浏览器中打开,效果如下图
在这里插入图片描述
这时会发现浏览器中编码发生变化,下面再多尝试。

  • 将创建的php文件的编码改为ansi,效果如下图
    在这里插入图片描述
    出现乱码的原因是:将ansi码的文件用utf-8编码来解读,

这时明白:决定浏览器的编码还可以通过代码来实现,但要求是要配置服务的的配置文件,

同样的乱码在java中也是有遇到

创建一个bird.java文件,(文件的编码为ansi)

public class bird {
	public static void main(String []args){
	System.out.println("大家好呀");	
}
}
  • 1
  • 2
  • 3
  • 4
  • 5

编译运行如图:
在这里插入图片描述

但如果改变文件编码为utf-8,结果就会变成这样

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/412428
推荐阅读
相关标签
  

闽ICP备14008679号