Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[html] 第26天 解释下你对GBK和UTF-8的理解?并说说页面上产生乱码的可能原因 #90

Open
haizhilin2013 opened this issue May 11, 2019 · 8 comments
Labels
html html

Comments

@haizhilin2013
Copy link
Collaborator

第26天 解释下你对GBK和UTF-8的理解?并说说页面上产生乱码的可能原因

@haizhilin2013 haizhilin2013 added the html html label May 11, 2019
@AnsonZnl
Copy link
Contributor

AnsonZnl commented May 12, 2019

gbk和utf8的理解

我们这里将以最简单最容易理解的方式来描述GBK和UTF8的区别,以及它们分别是什么。

GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符。

UTF-8编码:它是一种全国家通过的一种编码,如果你的网站涉及到多个国家的语言,那么建议你选择UTF-8编码。

GBK和UTF8有什么区别?

UTF8编码格式很强大,支持所有国家的语言,正是因为它的强大,才会导致它占用的空间大小要比GBK大,对于网站打开速度而言,也是有一定影响的。

GBK编码格式,它的功能少,仅限于中文字符,当然它所占用的空间大小会随着它的功能而减少,打开网页的速度比较快。

产生乱码的原因

参考:

@Konata9
Copy link

Konata9 commented Aug 12, 2019

GBK 是中国的中文字符,包含了简体汉字和繁体汉字。而 UTF-8 表示了全球国家通过的一种编码,如果需要做多语言或者国际化的时候,最好采用 UTF-8 来进行编码。

由于 UTF-8 包含了多种语言,也因此其占用的空间会比较大一些。

而网页产生乱码往往是因为编码与解码不匹配造成的。一般我们会在 <meta> 标签中的 content 设置 charset 来决定网页采用的编码。如果引用的文件为其他格式,则会出现无法解释或者解释不对的字符,即乱码问题。

参考文章:乱码是怎样形成的?

@xcLtw
Copy link

xcLtw commented Sep 24, 2019

  • gbk代表了国内的,不同版本的编码规范,后面数字越大一般对应的范围越大,分别代表了简体字版本,含有繁体版本,含有少数民族字体版本等等,主要在国内,汉文化圈流行。
  • utf系列则适合多语言版本,但是相对应的占用空间的确上升了,是国际组织注意到各国不同的编码版本后推出的国际规范,utf-8出现时间大致在简版GBK之后
  • 网页端的乱码一般是由于源文件的保存编码和声明编码不一致导致的,例如编辑器选择的是utf格式保存,但是声明格式meta..gbk这个样子

@blueRoach
Copy link

GBK代表中文编码
UTF-8代表全球语言通用编码

产生乱码的原因:
meta标签的charset属性的值与 源文件保存的编码不一致

@MrZ2019
Copy link

MrZ2019 commented Sep 27, 2020

我们这里将以最简单最容易理解的方式来描述GBK和UTF8的区别,以及它们分别是什么。

GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符。

UTF-8编码:它是一种全国家通过的一种编码,如果你的网站涉及到多个国家的语言,那么建议你选择UTF-8编码。

@Iambecauseyouare
Copy link

GBK编码:是中国的中文字符,其他它包含了简体中文与繁体中文字符
UTF-8编码:它是一种全国家通过的一种编码
UTF-8支持所有国家的语言,占用空间要比GBK大,GBK编码,仅限于中文字符,占用空间也会比较小
乱码的原因:应该是编码格式不一致

@never123450
Copy link

GBK和UTF-8是两种常见的字符编码方式。

GBK是一种中文字符集编码方式,它支持包括简体中文和繁体中文在内的中文字符。GBK编码使用双字节来表示汉字字符,每个字节的范围是0x81 - 0xFE。GBK编码可以兼容ASCII编码,即英文字母和数字等ASCII字符使用单字节表示。

UTF-8是一种通用的字符编码方式,它可以表示几乎所有的字符,包括各种语言的文字、符号和表情等。UTF-8编码使用变长字节表示字符,英文字母和ASCII字符使用单字节表示,而一些特殊字符和汉字等使用多个字节表示。

页面上产生乱码的可能原因有多种:

  1. 字符编码不匹配:如果网页的字符编码与浏览器所使用的字符编码不一致,就会导致乱码。例如,网页使用UTF-8编码,但浏览器将其解析为GBK编码,就会出现乱码。确保网页的字符编码与浏览器所使用的字符编码一致是解决这个问题的关键。

  2. 缺少字符集声明:网页应该在 <head> 标签中通过 <meta> 标签声明字符编码,例如 <meta charset="UTF-8"> 。如果缺少这个声明,浏览器可能无法正确解析网页的字符编码,导致乱码。

  3. 字符编码转换错误:在数据传输或处理过程中,如果字符编码的转换出现错误,也会导致乱码。例如,将一个UTF-8编码的文本错误地转换为GBK编码,就会导致乱码。

  4. 特殊字符处理不当:一些特殊字符,如Unicode字符、HTML实体字符或特殊的语言字符,可能需要特殊处理才能正确显示。如果处理不当,就会导致乱码。

为了避免页面上出现乱码,需要确保网页的字符编码声明正确,并且字符编码的转换和处理过程正确无误。同时,也要注意特殊字符的处理,以确保它们能够正确显示。

1 similar comment
@never123450
Copy link

GBK和UTF-8是两种常见的字符编码方式。

GBK是一种中文字符集编码方式,它支持包括简体中文和繁体中文在内的中文字符。GBK编码使用双字节来表示汉字字符,每个字节的范围是0x81 - 0xFE。GBK编码可以兼容ASCII编码,即英文字母和数字等ASCII字符使用单字节表示。

UTF-8是一种通用的字符编码方式,它可以表示几乎所有的字符,包括各种语言的文字、符号和表情等。UTF-8编码使用变长字节表示字符,英文字母和ASCII字符使用单字节表示,而一些特殊字符和汉字等使用多个字节表示。

页面上产生乱码的可能原因有多种:

  1. 字符编码不匹配:如果网页的字符编码与浏览器所使用的字符编码不一致,就会导致乱码。例如,网页使用UTF-8编码,但浏览器将其解析为GBK编码,就会出现乱码。确保网页的字符编码与浏览器所使用的字符编码一致是解决这个问题的关键。

  2. 缺少字符集声明:网页应该在 <head> 标签中通过 <meta> 标签声明字符编码,例如 <meta charset="UTF-8"> 。如果缺少这个声明,浏览器可能无法正确解析网页的字符编码,导致乱码。

  3. 字符编码转换错误:在数据传输或处理过程中,如果字符编码的转换出现错误,也会导致乱码。例如,将一个UTF-8编码的文本错误地转换为GBK编码,就会导致乱码。

  4. 特殊字符处理不当:一些特殊字符,如Unicode字符、HTML实体字符或特殊的语言字符,可能需要特殊处理才能正确显示。如果处理不当,就会导致乱码。

为了避免页面上出现乱码,需要确保网页的字符编码声明正确,并且字符编码的转换和处理过程正确无误。同时,也要注意特殊字符的处理,以确保它们能够正确显示。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
html html
Projects
None yet
Development

No branches or pull requests

8 participants