讲一下servlet传来传去的中文问题

先要了解关系

要了解servlet传来传去的中文问题,首先要知道客户端(浏览器)和服务器(这里讲tomcat)还有servlet之间的关系

简单说一下就是浏览器发送一个HTTP请求,然后服务器(比如tomcat)接收到后传递给servlet容器,实例一个servlet对象让他根据需求干活,这里就不讲这么清楚,因为不是这篇博客的主题

再来说传输的中文问题

这里用html作为例子进行传输

第一步

.html中加上

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

这句话的目的是告诉浏览器,等下发消息给服务器的时候,使用UTF-8编码
好像现在可以简化为 <meta charset="UTF-8">

第二步

服务器tomcat接收到字符码之后,会直接采用ISO-8859-1方式进行解码(这是它的默认机制)
例如:

用户输入“胡某人”,浏览器采用utf-8比如将其编码为 &#jshdsjhdeu; 然后发给tomcat

tomcat理应用同样的utf-8来解码,但它不管不顾,依旧采用自己ISO的方式来解码,比如解码成了 &…%…& 然后显示出来,

这就是所谓的乱码。 程序员的解决办法就是先用tomcat的ISO方式再将 &…%…& 编码,恢复成 &#jshdsjhdeu;

然后再用浏览器的utf-8方式将 阿伦 解码, 就成功得到了 “胡某人”

整个流程:
胡某人 → &#jshdsjhdeu → &…%…& → &#jshdsjhdeu → 胡某人

补充一下解码和编码,之前一直混乱
编码 和 解码 是什么,用utf-8来举例:
胡某 → &#x 963F;&#x4F26 ; 由左到右的过程,叫编码
胡某 ← &#x 963F;&#x4F26 ; 由右到左的过程,叫解码
中文变成字符是编码
字符变成中文是解码

<%@ page language="java" pageEncoding="UTF-8"%>

<%@ page contentType="text/html;charset= UTF-8"%>

<html>

<head>

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html charset=gb2312">

</head>

<body>

<%out.print("JSP的中文处理");%>

</body>

</html>

先讲这么多,累了

已经听了一百遍

怎么听都不会倦

从白天唱到黑夜

我一直在身边

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值