9:中文乱码处理-Java Web

简介: 9:中文乱码处理-Java Web

9.1 常见字符集

• ASCII

最原始的一套编码,所有编码都是由一个字节的二进制数对应,尽管包含8位,但是第一位始终是0,也就是128个。单字节编码。

ISO-8859-1

字符集前128个字符与ASCII完全相同,后128个字符扩展增加了其他语言字符,单字节编码。


• GB2312和GBK


GB2312是中华人民共和国国家标准汉字信息交换编码,采用两个字节来编码一个中文汉字,涵盖了大部分常用的中文字符


GBK对GB2312进行扩展的中文字符集,它完全兼容GB2312,还对繁体和一些不常用的汉字和特殊字符进行扩展支持


• UNICODE


采用两个字节保存编码,前256个字符与ISO-8859-1是完全统一的,只不过他的第一个字节数字为0,它包含世界上大多数国家的大多数语言文字和字符。


• UTF-8


对于0~127的ASCII字符,UTF-8采用一个字节表示,并且编码和ASCII是一样的,如果UNICODE是在0X0080和0x007f之间的字符,UTF-8则用两个字节表示,如果UNICODE是在0X0800和0XFFF之间的字符,对应的UTF-8则采用3个字节。

9.2 乱码原因

Java语言内部采用Unicode字符集来表示字符,一旦与外界的程序打交道就会存在一个字符转换的过程。

对于Java Web应用程序,客户端浏览器采用默认的字符集(通常是GBK),而Web容器对POST提交的数据采用ISO-8859-1的编码方式,数据在这些系统中穿梭很可能就会出现乱码的问题。

9.3 解决乱码

1、如何解决服务器返回页面中文乱码问题

   response.setContentType("text/html;charset=UTF-8");

2、解决post方式请求表单参数中文乱码问题

request.setCharacterEncoding("UTF-8");//注意此语句一定要设置在取参数的语句之前

3、解决get方式请求中文参数乱码问题

修改server.xml

<Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000"
  redirectPort="8443" URIEncoding="UTF-8"/>


目录
相关文章
|
11天前
|
Java UED
Java Web 中forward 和 redirect 的区别
在Java Web开发中,页面跳转是构建用户界面和实现业务逻辑的重要组成部分。Forward(转发)和Redirect(重定向)是两种常见的跳转方式,它们分别具有不同的特点和适用场景。正确地选择和使用这两种跳转方式,有助于提高Web应用的性能、用户体验和代码可维护性。
19 4
|
28天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
29天前
|
前端开发 JavaScript Java
使用Ajax进行异步交互:提升Java Web应用的用户体验
【4月更文挑战第3天】Ajax技术在Web开发中提升UX,通过与服务器异步交互实现页面局部更新,无需完整刷新。核心组件包括XMLHttpRequest、JavaScript、HTML/CSS及服务器端脚本。在Java Web应用中,可使用原生JavaScript或框架如jQuery、AngularJS实现Ajax请求。Ajax减少页面刷新,实现实时数据更新,即时表单验证和动态UI,显著改善用户体验,是现代Web开发不可或缺的一部分。
|
8天前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
13天前
|
缓存 负载均衡 前端开发
构建高性能 Java Web 应用程序
【4月更文挑战第19天】构建高性能 Java Web 应用涉及数据库优化(合理设计、查询优化、性能调优)、缓存策略(服务器端缓存、HTTP 缓存)、代码优化(避免冗余查询、减少对象创建、有效使用线程)、异步处理(增强并发能力)、负载均衡(分发请求、提升可靠性)、性能测试与监控(发现瓶颈、实时问题)、前端优化(减少加载时间、优化资源)、服务器配置(硬件资源、系统优化)以及代码压缩和资源合并。综合运用这些技术,能显著提升应用性能和用户体验。
|
17天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
|
17天前
|
JavaScript Java 测试技术
基于Java的web新闻流媒体平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的web新闻流媒体平台的设计与实现(源码+lw+部署文档+讲解等)
21 0
|
26天前
|
安全 前端开发 Java
Java Web开发知识点学习总结
Java Web开发涉及Java基础、Servlet、JSP、数据库操作(SQL+JDBC)、MVC设计模式、Spring框架、Hibernate ORM、Web服务(SOAP&RESTful)、安全认证(HTTP Basic/Digest/OAuth)及性能优化(缓存、异步、负载均衡)。
19 3
|
28天前
|
Java 持续交付 开发者
使用 Docker 容器化 Java Web 应用:提高开发和部署效率
【4月更文挑战第4天】Docker 作为轻量级容器技术,提升了 Java Web 应用的开发和部署效率。它提供类似生产环境的本地开发体验,减少环境配置时间,保证应用隔离性与稳定性。Docker 改善了部署流程,实现跨环境的无缝迁移,支持自动化构建、部署和扩展,并促进持续集成和持续部署,助力企业实现更高效、可靠的软件生命周期管理。
|
29天前
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
【4月更文挑战第3天】Maven是Java社区的标准项目管理工具,简化构建过程,自动化依赖管理和构建生命周期。它提供中央仓库下载库,支持多模块项目,且有插件机制执行各种任务。在Java Web开发中,Maven用于创建项目结构、管理依赖、自动化构建及运行插件。遵循最佳实践,如默认约定、使用版本控制和profiles,结合持续集成工具,能大幅提升开发效率。学习和使用Maven对提升Java Web开发效率至关重要。