前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中文乱码问题分析与标本兼治的方法

Java中文乱码问题分析与标本兼治的方法

作者头像
用户1289394
发布2018-02-27 14:51:50
9120
发布2018-02-27 14:51:50
举报
文章被收录于专栏:Java学习网Java学习网

你是否遇到过这种情景,代码都写OK了,测试也没问题,但一运行发现显示的是乱码,这下坏了,明天还要给客户做演示汇报,现在已经到晚上22点了,别无选择,只能连夜查找问题,真悲剧啊!

网络配图 为了不让悲剧重演或不在让悲剧在你身上重演,我今天和大家一起学习Java中文乱码问题出现的原因和解决方法及注意事项,还是那句话,水平有限,有不妥之处,欢迎文明纠正;学习马上开始。 Java初学者及初级开发人员对于中文乱码问题一般都无从下手,更不用说解决了;这也不能怪他们,因为造成乱码的原因很多,没有丰富的开发经验,很难一步到位找准问题;我们要想把Java中文乱码问题彻底解决,就必须了解Java系统的中文实现原理。 下面我们通过开发过程中经常用的一些临时解决方法来学习它的原理,当然最后也会给大家提供一个标本兼治的方案,从此不在受中文问题困扰。 1、使用较早的一个方法是使用String的字节码转换,这种方法以破坏对象封装性为代价,进行了字节码转换; 2、对J2EE容器进行编码设置,比如Eclipse的编码设置,但如果应用系统脱离了该容器,则又会发生乱码; Java处理字符的原理是它在内部运算过程中,所有的字符都会被转化为UTF-8编码来进行运算处理,字符串在被Java处理前,Java是根据操作系统的默认编码字符集来决定字符串的初始编码,并且Java系统的输入和输出的都用的是操作系统的默认编码。

网络配图 现实情况是实际项目开发中,能够控制住Java系统输入和输出部分是很难的,特别是J2EE项目中涉及到与外部浏览器和数据库的交互等情况。 Java的输入途径我整理了3种:

  • 通过页面表单集合成请求发送给服务器;
  • 从数据库中读取;
  • JSP文件,JSP在第一次运行时会被编译成Servlet,JSP中常常使用中文字符,如何没有给开发工具设置编码, javac编 译时,将默认用操作系统编码。

网络配图 Java的输出途径有2种:

  • JSP页面的输出;
  • 将字符串保存到数据库中,也是一种输出。

最后总结开发过程中要遵循的原则: 1、J2EE应用和容器分离的原则; 2、统一Java系统的输入、输出和操作系统三者的编码字符; 3、系统与外界有交互的地方,如果能够设定编码时就要设定为UTF-8; 4、项目启动时就要明确指定整个应用系统统一字符集,并要求开发团队每个成员都必须遵守。 好了,这是我多年开发过程中整理的一些方法和大家一起分享,你有更好的方法可以留言,大家一起讨论学习,共同进步,谢谢朋友们。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档