charset=gb2312"和 charset=utf-8"有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了charset=gb2312"和 charset=utf-8"有啥区别?相关的知识,希望对你有一定的参考价值。

如题

charset=gb2312"和 charset=utf-8"的区别:

charset=gb2312代表说明网站是采用的编码是简体中文;
charset=utf-8代表世界通用的语言编码;

最常用到的是charset=gb2312、charset=iso-8859-1和charset=utf-8

charset=utf-8这个编码可以用到中文、韩文、日文等世界上所有语言编码上。

下面讲讲这几个的区别:

字符集与编码
各个国家和地区所制定的不同 ANSI 编码标准中,都只规定了各自语言所需的“字符”。比如:汉字标准(GB2312)中没有规定韩国语字符怎样存储。这些 ANSI 编码标准所规定的内容包含两层含义:
1. 使用哪些字符。也就是说哪些汉字,字母和符号会被收入标准中。所包含“字符”的集合就叫做“字符集”。
2. 规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定就叫做“编码”。
各个国家和地区在制定编码标准的时候,“字符的集合”和“编码”一般都是同时制定的。因此,平常我们所说的“字符集”,比如:GB2312, GBK, JIS 等,除了有“字符的集合”这层含义外,同时也包含了“编码”的含义。
“UNICODE 字符集”包含了各种语言中使用到的所有“字符”。用来给 UNICODE 字符集编码的标准有很多种,比如:UTF-8, UTF-7, UTF-16, UnicodeLittle, UnicodeBig 等。
1、ISO-8859-1:
最简单的编码规则,每一个字节直接作为一个 UNICODE 字符。比如,[0xD6, 0xD0] 这两个字节,通过 iso-8859-1 转化为字符串时,将直接得到 [0x00D6, 0x00D0] 两个 UNICODE 字符,即 "ÖÐ"。
反之,将 UNICODE 字符串通过 iso-8859-1 转化为字节串时,只能正常转化 0~255 范围的字符。

2、GB2312,BIG5,Shift_JIS,ISO-8859-2
把 UNICODE 字符串通过 ANSI 编码转化为“字节串”时,根据各自编码的规定,一个 UNICODE 字符可能转化成一个字节或多个字节。
反之,将字节串转化成字符串时,也可能多个字节转化成一个字符。比如,[0xD6, 0xD0] 这两个字节,通过 GB2312 转化为字符串时,将得到 [0x4E2D] 一个字符,即 '中' 字。
“ANSI 编码”的特点:
1. 这些“ANSI 编码标准”都只能处理各自语言范围之内的 UNICODE 字符。
2. “UNICODE 字符”与“转换出来的字节”之间的关系是人为规定的。

3、UTF-8,UTF-16,UnicodeBig
与“ANSI 编码”类似的,把字符串通过 UNICODE 编码转化成“字节串”时,一个 UNICODE 字符可能转化成一个字节或多个字节。
与“ANSI 编码”不同的是:
1. 这些“UNICODE 编码”能够处理所有的 UNICODE 字符。
2. “UNICODE 字符”与“转换出来的字节”之间是可以通过计算得到的。
参考技术A charset=gb2312: 中文编码
charset=utf-8:国际标准编码本回答被提问者和网友采纳
参考技术B GB 2312主要对于中国汉字,
utf-8是英文,国际通用
参考技术C 楼上答的都挺好了。楼主可以结贴了哈

JSP怎么封装传对象

JSP 怎么 把多条数据 封装起来 传到第二个JSP 页面里 把完整代码 发上来 谢谢 最好有注释啊 第二个JSP怎么取出来 也写写啊 麻烦了
我是想 把数据封装起来 谢谢楼下的 不过这不是我想要的 我这里面 数据量很大 所以要封装 存到对象里 然后传到第二个JSP 取对象

通过request.getParameter方法

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form name="loginForm" method="post" action="judgeUser.jsp">
<table>
<tr>
<td>登录帐号:<input type="text" name="userName" id="userName"></td>
</tr>
<tr>
<td>登录口令:<input type="password" name="password" id="password"></td>
</tr>
<tr>
<td><input type="submit" value="登录" style="background-color:pink"> <input type="reset" value="重置" style="background-color:red"></td>
</tr>
</table>
</form>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.util.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>身份验证</title>
</head>
<body>
<%
request.setCharacterEncoding("GB18030");
String name = request.getParameter("userName");
String password = request.getParameter("password");
if(name.equals("Tom")&& password.equals("l68"))

%>
<jsp:forward page="afterLogin.jsp">
<jsp:param name="userName" value="<%=name%>"/>
</jsp:forward>
<%

else
%>
<jsp:forward page="login.jsp"/>
<%

%>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录成功</title>
</head>
<body>
<%
request.setCharacterEncoding("GB18030");
String name = request.getParameter("userName");
out.println("欢迎你:" + name);
%>
</body>
</html>
参考技术A 每一条结构化数据用bean保存,再将所有bean存入list容器中。把list对象传过去。 参考技术B 把你封装的对象放到session中。
session.setAttribute("对象别名",对象别名);
在第二个页面就直接session.getAttribute("对象别名");
然后再遍历输出对象中的属性值。
参考技术C 用bean将一个个的对象封起来,然后将其放入request里面就可以啊,我好长时间没写java了, 参考技术D 不叫“封装”也不叫“传”。
应该叫“暂存”和“取用”。
先把概念搞清楚啊,不要说的挺玄乎的。

用request session application都可以。

以上是关于charset=gb2312"和 charset=utf-8"有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

html语言中<meta>标签charset=gb2312和charset=utf-8的问题?

charset=gbk和charset=gb2312有啥区别

asp中UTF-8和GB2312之间怎么转换

怎样把UTF8编码转成GB2312编码?

c# 将文件gbk转换为utf-8

shell :linux sed 批量替换字符串