JSP乱码处理以及常见编码集

Java编程乱码问题的全面解决方案 简介:Java编程中遇到的乱码问题往往是由于字符编码不一致导致的。本文详细解释了字符编码的基础知识,并提供了针对纯Java代码、Servlet、JSP和EJB等不同场景下的乱码处理方法。通过设置正确的输入输出流编码、HTTP请求参数编码以及在JSP页面和数据库连接中指定字符集,开发者可以有效避免乱码问题。同时,也强调了IDE编码设置的重要性,并指出在特定数据格式和国际化环境下处理乱码的策略。 阅读详情

1、乱码问题
  <1>、在JSP页面中,由于页面调转而导致不同页面的编码不一致,引起乱码(指中文)
 解决:   
 例如在提交的表单中通过 String username = request.getParameter("username");
 得到用户名,如果传参的页面与得到参数的页面编码(这里为GBK)不一样就会导致乱码,通常的做法是
 利用 username = new String(username.getBytes("ISO-8859-1"),"GBK");语句将得到的参数转化为GBK的编码方式;
 如果传递的参数很多,不可能一一转换这时用 request.setCharacterEncoding("GBK");和 response.setCharacterEncoding("GBK");
 通过这两个语句规定在当前页面接收或者传递参数的编码都为GBK;从而避免页面跳转时的乱码出现。
 <2>在JSP中由于编译器或者是使用的数据库的编码和页面编码不一致导致;
 解决:
 例如:在MyEclipse中可以通过‘首选项’中的设置来改变页面所使用的编码方式。
       在Mysql数据库中可以通过改变my.ini文件中编码方式等途径实现改变 。


String str = new String(str.getBytes("ISO8859-1"),"gb2312");
                 getBytes()是在源字符串的编码方式为ISO8859-1的情况下,将源字符串转换为Unicode编码的
                 字节数组,然后再将这个字符数组的编码方式转换为gb2312成为新的字符串。

常见编码集:

ISO-8859-1  编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF           
之间是文字符号ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。欧           
元符号出现的比较晚,没有被收录在ISO-8859-1当中。因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中           

传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。这是个很重要           
的特性,MySQL数据库默认编码是Latin1就是利用了这个特性。ASCII编码是一个7位的容器,ISO-8859-1编码是一个8位的容器。Latin1是           
ISO-8859-1的别名,有些环境下写作Latin-1。
ASCII (American Standard Code for Information Interchange,美国信息互换标准代码)是基于罗马字母表的一套电脑编码系统,
       它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO 646。
GB2312 又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施,
       是中国国家标准的简体中文字符集。它所收录的汉字已经覆盖99.75%的使用频率,基本满足了汉字的计算机处理需要。在中国大陆
       和新加坡获广泛使用
GBK    字符集是GB2312的扩展(K),GBK1.0收录了21886个符号,它分为汉字区和图形符号区,汉字区包括21003个字符。
       GBK字符集主要扩展了繁体中文字的支持。
BIG5   又称大五码或五大码,1984年由台湾财团法人信息工业策进会和五间软件公司宏碁 (Acer)、神通 (MiTAC)、佳佳、零壹 (Zero One)、大众          
 (FIC)创立,故称大五码。Big5码的产生,是因为当时台湾不同厂商各自推出不同的编码,如倚天码、IBM PS55、王安码等,彼上此不能兼容;
       另一方面,台湾政府当时尚未推出官方的汉字编码,而中国大陆的GB2312编码亦未有收录繁体中文字。
GB18030  的全称是GB18030-2000《信息交换用汉字编码字符集基本集的扩充》,是我国政府于2000年3月17日发布的新的汉字编码国家标准,
         2001年8月31日后在中国市场上发布的软件必须符合本标准。GB 18030字符集标准的出台经过广泛参与和论证,来自国内外知名信息
         技术行业的公司,信息产业部和原国家质量技术监督局联合实施。
ANSI编码 不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延       
 伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。
Unicode 字符集编码是(Universal Multiple-Octet Coded Character Set) 通用多八位编码字符集的简称,支持世界上超过650种语言的国际字符集      
  。Unicode允许在同一服务器上混合使用不同语言组的不同语言。它是由一个名为 Unicode 学术学会(Unicode Consortium)的机构制订的字符         
 编码系统,支持现今世界各种不同语言的书面文本的交换、处理及显示。该编码于1990年开始研发,1994年正式公布,最新版本是2005年3月31   
      日的Unicode 4.1.0。Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语   
      言、跨平台进行文本转换、处理的要求。UTF-32、UTF-16 和 UTF-8 是 Unicode 标准的编码字符集的字符编码方案,UTF-16 使用一个或两个     
  未分配的 16 位代码单元的序列对 Unicode 代码点进行编码;UTF-32 即将每一个 Unicode 代码点表示为相同值的 32 位整数

JSP乱码问题 JSP乱码问题 页面中遇到的乱码 转换等问题 立即下载

相关推荐

期货缠论实战:文华财经笔中枢指标公式解析与博易大师应用指南

本文深入解析期货缠论实战中的文华财经笔中枢指标公式及其在博易大师平台的应用技巧。详细介绍了笔中枢指标的核心逻辑、公式拆解、参数设置及多周期联合作战策略,帮助交易者提升市场分析能力与交易胜率。特别适合期货交易者学习缠论指标的实际应用。

weixin_42522552的博客 356

预备知识:常见的编码 (ASCII, Unicode, UTF-8, GBK, base64, urlencode)

浏览器原生提供了base64的编码、解码方法:btoa atob。

dafan0的博客 4968

自动驾驶必备:5分钟搞懂gPTP如何实现μs级时间同步(附开源代码)

本文深入解析了gPTP协议在自动驾驶系统中实现微秒级时间同步的核心机制与工程实践。针对多传感器融合与跨域协同的严苛需求,文章拆解了gPTP的频率同步、对等延迟测量与时间偏移校正三步流程,并提供了基于linuxptp和AVnu gPTP两大开源代码库的实战配置指南与性能评估方法,助力开发者构建高精度、高可靠的车载时间同步网络。

weixin_29211309的博客 167

常见的字符集编码

文章目录ASCIIISO-8859-1GB2312GBKBig5UTF-8UTF-16Unicode ASCII ASCII(American Standard Code for Information Interchange):美国信息交换标准代码 在所有字符集中,最知名的可能要数被称为ASCII的8位字符了。美国信息交换标准代码是由美国国家标准学会(American National Standard Institute , ANSI )制定的,是一种标准的单字节字符编码方案,用于基于文本的数据。它最初

张不帅 2742

spring-ai学习(四)-MCP

创建一个springai项目1.依赖。

zql1455890112的博客 1383

【软件使用】Calibre部分提参的实战技巧与常见问题解析

本文详细解析了Calibre部分提参(Partial PEX)的实战技巧,重点介绍了如何利用HCELL与XCELL文件高效排除已知模块,实现精准的寄生参数提取,从而快速定位后仿真中的时序与信号完整性问题。文章涵盖了从图形界面到命令行的完整操作流程,并提供了常见问题(如时钟失真、模块“消失”)的深度Debug指南与最佳实践,助力芯片设计工程师提升验证效率。

yhn456789的博客 1026

字符编码、常见字符集解析(ASCII、Unicode、UTF-8、GB2312等)

- ASCII简单的7位编码适用于以英语为主的国家。 - Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。 - UTF-8是一种常见的基于Unicode字符集的编码方式。 - GB2312是面向简体中文,BIG5是面向繁体中文。 - Unicode还在其发展期,Unicode、GB2312以及BIG5等多种编码共存的状况可能在以后较长的时间内都会持续下去。

人工智能算法与工程实践 1万+

读懂 403 Forbidden, the request has been blocked by UCON.:它不是浏览器渲染问题,而是后端安全闸门在拦截

摘要 403 Forbidden 错误表明服务器理解请求但拒绝执行,通常与权限或访问控制有关。当错误信息显示 "blocked by UCON" 时,说明请求被 SAP 体系中的统一连接管控框架拦截。UCON 采用白名单机制限制外部调用,通过记录、评估、强制三阶段流程实施管控。常见触发场景包括 HTTP 服务与通信场景配置不一致、白名单未更新等。排查时应通过 DevTools 确认服务器响应,使用 curl 排除浏览器干扰,并比较不同环境的行为差异。解决方案通常涉及调整配置传输顺序或更新

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 239

常见编码表

Java编码

qheuwq的博客 3631

【超详细】计算机操作系统总结及思维导图(汤子瀛版)

计算机操作系统 一.操作系统引论 1.操作系统的目标和功能 目标 方便性 有效性 提高系统资源利用率 提高系统吞吐量 可扩充性 开放性 作用 OS作为用户与计算机硬件系统之间的接口 命令方式 系统调用方式 图标–窗口方式 OS实现了对计算机资源的抽象 2.操作系统的发展过程 未配置操作系统的计算机系统 人工操作方式 用户独占全机 CPU等待人工操作 严重降低...

圣三一 2万+

使用 Simulink Real-Time 搭建一个完整的实时信号采集与滤波系统模型

本文详细介绍了基于Simulink Real-Time构建实时信号采集与滤波系统的完整流程。主要内容包括:系统配置(模型创建与参数设置)、信号采集模块搭建(模拟信号源或真实硬件连接)、实时滤波器设计(浮点/定点)、输出可视化(Scope/ToWorkspace等)、模型编译与下载到目标机、外部模式在线调试及数据保存方法。系统可实现微秒级实时信号处理,适用于工业控制、航空航天等对时间确定性要求高的场景。文章还提供了优化建议(多速率建模、优先级调度等)和应用场景说明,帮助读者快速掌握实时系统开发的核心技能。

amy_mhd的博客 304

JSP字符集编码集合

在这里,我们先说说JSP/Servlet中的几个编码的作用。   在JSP/Servlet 中主要有以下几个地方可以设置编码,pageEncoding="UTF-8"、contentType="text/html;charset=UTF-8request.setCharacterEncoding("UTF-8")和response.setCharacterEncoding ("UTF-8"),其...

weixin_34050389的博客 328

基于ESP32的智能停车场管理系统开发

智能停车场管理系统通过引入物联网(IoT)技术,实现对停车场内车辆的实时监控、空闲车位的管理、车辆的入场与出场控制等功能,大大提高了停车场的利用率和管理效率。通过集成物联网技术、云平台以及先进的传感器和执行器,系统不仅能实时监控停车场的车位状态,还能提供更好的用户体验。本文将介绍如何基于ESP32开发一个智能停车场管理系统,涵盖系统架构、硬件选择、软件开发以及最新技术的应用,帮助开发者实现高效的智能停车管理。ESP32的代码主要负责处理车位传感器的数据,控制LED指示灯的状态,以及与云平台进行数据交互。

2201_76125393的博客 911

“未结束的字符串常量”问题解决办法

可能原因: 1、编码集问题 2、数据中有特殊字符,比如换行符,回车符等,导致jsp的格式不对 解决办法: 1、找到对应的js或jsp的文件,修改编码集为“UTF-8” 2、去掉换行符,这个换行符一般在数据库,一般不好看出来,可以通过数据库端以HEX格式查看数据,既16进制,如果出现0D或0A就表示出现了换行或回车符 另外,数据库端替特殊制表符的方...

jonesAriven的博客 2万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

解决Servlet中文乱码问题

一、出现乱码的原因   由于浏览器默认使用UTF-8码表进行编码,而servlet使用ISO-8859-1码表进行编码,传输和接收方编码不一致导致乱码的产生。中文乱码就是因为编码不符,可能出现乱码有四个地方: 1 JSP编码乱码 2 HTML编码乱码 3 request获取数据乱码 4 response输出信息乱码 二、乱码的类型以及解决办法 1、Html中文乱码问题。 ...

一名北漂Java程序员的学习记录! 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

解决页面中文乱码问题

中文乱码的原因 以不合适的编码集解码,如文件保存的格式为UTF-8解码时使用BGK。 以不支持中文的编码集进行编码,如IOS-8859-1 JSP文件响应到浏览器的过程 乱码通常会在jsp引擎预处理阶段和html文件响应到浏览器阶段发生。 Jsp引擎预处理分为两个步骤: 检查jsp文件&lt;%@ page language="java" contentType="text/html...

BigFuTou 3万+

分析解决JSP页面显示中文乱码的问题

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.seCharacterEncoding("UTF-8"); %> <html> <head> <title&...

樂小伍 2608

Jsp 中文乱码原因及处理

           在Java Web Project 中一定会用到Jsp文件,而乱码问题又是做项目中必须要小心的,因此Jsp乱码问题我们应不让其出现,如果出现了也应有办法来解决,下面是我整理的几类Jsp乱码问题,希望对各位同行有帮助,如果有不准确的地方还请大神指教留言。   1.       页面显示乱码     &lt;% out.print(“中文”)%&gt; 原因:&lt;...

yuanzhipeng100511302的专栏 242

处理中文乱码问题(一)

处理中文乱码问题(一)中文乱码的产生处理中文乱码结果 中文乱码的产生 当我们在jsp页面进行输入信息的时候,将输入的信息展示在Java控制台上时,产生了中文乱码。 处理中文乱码 在WEB-INF目录下的web.xml文件中进行配置,添加过滤器,调用spring框架中org.springframework.web.filter.CharacterEncodingFilter,并且指定编码集encod...

Wiki~ 5298

jsp页面中中文乱码的处理措施

一个小例子引出中文乱码的问题:          input.html:                               你的姓名:                                      input.jsp                                         String userName = reques

青春继续 707

五种常见的乱码处理方式

1. 转码  str= new String(str.getBytes("iso8859-1"),"gb2312");  str= new String(str.getBytes("iso8859-1"),"GBK");  2.JSP中乱码    3. tomcat中配置     更改 Tomcat\conf\server.xml,指定浏览器的编码格式为“简体中文”: 

2252

在jsp与servlet中处理中文乱码问题

1.向页面输出中文(分为字节流和字符流)response 字节流:代码中中文的编码和浏览器的编码需要一致 解决乱码: * 设置浏览器默认打开时候的编码集 * 获得字节数组的时候,传入一个编码集 *** 将两个编码一致即可 // 设置浏览器默认打开的编码 response.setHeader("Content-Type", "text/html;charset=utf-...

anchorite 3089

JavaWeb开发中乱码问题处理

其实,任何问题都是有理可循的,只要弄明白原理,由原理入手设计解决方案,很多问题也就迎刃而解了。在程序设计中,我们不仅要明白怎么做,更要知道为什么这么做,这才是提升能力的必经之路。 下面,我们来分析一下Javaweb开发中常见的乱码产生的原因及其解决方案。 响应乱码原理 服务器发送数据到浏览器,有字符和字节两种方式,这两种方式产生乱码的原理各不相同。字节方式输出数据: resp...

Marmara 391

各种乱码问题

Web项目乱码问题汇总解决

m0_46213126的博客 1899

关于struts2 从jsp页面获取数据乱码问题。

最近几天在搭框架,之前搭StrutS2 ,然后hibernate ,到这一步的时候就会出现乱码问题。插入数据库的数据如果是中文,就会出现乱码。 然后我找了很久,数据库编码设置的utf-8, jsp 页面设置是utf-8,以及hiberante中的配置文件设置的还是utf-8,但是还是出现乱码。 我试过直接在数据库中写中文,然后拿出数据,不会乱码。还试过在代码中直接将用户名的属性写死。结

qq303437511的博客 3095

关于jsp乱码的解决方式

产生原因: 请求和响应的编码格式与解析的编码格式不一致 解决方案一: request:原理:先把得到的字符串以指定的字符编码格式转换成字节数组 再用string的构造方法 将其转换成utf-8字符码的格式 每次接收完传来的参数都要手动处理,比较麻烦 使用String str = new String(byte[] byte,String charset) str.getByte(Str...

qq_43472768的博客 540
上一篇: session
下一篇: JSTL基础
tools_csnd
博客等级 码龄15年 0粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值