WEB开发中不同情况下的乱码处理方案

时间:2020-10-08 08:21:24 计算机网络毕业论文 我要投稿

WEB开发中不同情况下的乱码处理方案

  摘要:随着时代的改变,现在人们与计算机已经是密不可分,信息技术的应用显得异常重要。而在WEB系统开发中经常出现一些乱码状况,本文针对WEB开发中遇到的不同乱码情况研究不同的处理方案。在整个B/S请求从客户端页面提交内容到服务器,服务器接收响应,并从数据库中获取数据,经过一番处理之后再返回给客户端的浏览器页面显示的过程中,只要一个环节在转码过程中有错误就会导致乱码的现象发生。在计算机系统上突然出现乱码情况,需要先判断乱码的现象,要根据现象,查出数据在整个数据流向的过程中,数据到底从什么时候什么地方开始由正常开始变为乱码,即找出数据变成乱码的分界点。

WEB开发中不同情况下的乱码处理方案

  关键词:WEB开发;处理方案;乱码

  引言

  乱码是应用系统运行中经常出现的一个问题,也是应用系统中非常突出而且必须解决的一个问题。由于引起出现乱码的因素很多,例如:数据库本身的乱码,字符的乱码,JDBC与数据库数据交换时的编辑问题,所以解决乱码问题比较复杂,本文针对这几个乱码问题提出了相应的解决方案。本文从编码原理到实际案例对乱码原因进行详细的分析,并且整理和归纳了多个项目出现乱码现象的解决经验,总结了解决一般性乱码的办法和过程。针对我们遇到乱码问题的经验总结,同时,列出了不同环境下经常遇到过的乱码问题的解决过程:

  一、数据库本身乱码的解决方案

  1.1 比如:Oracle数据库在安装的过程中就可以选择某种字符集:ALTER DATABASE CHARACTER SET ZHS16GBK。

  查找当前字符集:select userenv('language') from dual;DB2在创建数据库的时候可以指定字符集:create database sccrm using codeset UTF-8 territory CN。

  MySQL在创建数据库的时候可以指定字符集:create database testxxx default charset=UTF-8。

  1.2 操作系统是否安装相应的字符集(unix下可以用locale查看当前字符集),将相应的数据打印出来即可。

  1.3 Java程序是否存在转码错误,字符集经常是在UTF-8、GBK、ISO-8859-1之间转换。

  二、应用服务器各个相关设置字符集的地方是否设置正确

  找到分界点之后,针对分界点之前和之后,查找在什么地方可以设置字符集,每一个分界点可以在哪些地方设置相关的字符集。如果是程序,可以查找到哪一行代码获取数据的时候开始乱码,从而可以考虑修改代码。如果不是程序,需要查看当前应用有哪些地方可以设置字符集,并且要了解每个设置字符集的地方,他们之间的相互关系。

  三、对字符乱码问题定位的常用技巧

  在网络系统中经常会出现字符乱码的情况,在这种情况下,首先要对字符乱码问题定位:如对中文encoding问题的定位基本采用在认为有可能的程序处理后打印字符串的内码,这是最简单的也是最直接的办法。

  四、JDBC与数据库数据交换时的编辑问题

  在JAVA运行期时,内容交换的编码为unicode编码,JDBC接收到的字符流必须是合法的编码格式,然后由JDBC向数据库提交数据请求。

  JSP/Servlet 编程中经常出现编码问题,除了上述讨论的方面,另一方面是读写数据库中的数据。

  在目前的行业里经常使用的关系数据库的系统大多都支持数据库多语言编码,在创建数据库时基本上都可以制定它自己的字符集设置,数据库的数据就将以指定的`编码形式存储。当应用程序访问数据时,在入口和出口处都会有encoding 转换。对于中文数据,数据库字符编码的设置应当保证数据的完整性。GB2312、GBK、UTF-8、ISO-8859-1等都是可选的数据库编码。但是如果编码设置成了ISO-8859-1,则应用程序在写数据之前须将16Bit的一个汉字或 Unicode 拆分成两个8-bit的字符,读数据之后则需将两个字节合并起来,同时还要判别其中的SBCS字符。这种情况没有充分利用数据库编码的作用,反而增加了编程的复杂度。因此ISO-8859-1不是推荐的数据库编码。针对上述状况,下列代码示例了如果Java应用是基于GB18030编码,而数据库编码是ISO-8859-1的情况,如何通过Java代码转换字符而不会产生乱码。

  五、客户端与服务器之间的数据交换编码问题

  从browser到web server,我们可以在表单中指定出提交内容的时候所用到的这些字符集,否则我们就会使用页面指定的这些编码。但是如果在url中直接用?的方式输入参数的话,那么编码往往会是操作系统本身的这些编码,因为此时是和页面无关紧要的。Web server它所接收到的是字节流的,默认是(getParameter)会以iso8859-1编码处理,结果肯定是不对的,所以就需要进行处理解决。我们如果提前设置了编码(通过request. setCharacterEncoding ),那么就可以直接获取到正确的结果。

  参考文献:

  [1]周兵.Java Web开发中的中文乱码问题分析及解决方[J].电脑知识与技术,2014-10-15.

  [2]杨金花.JSP技术中文乱码的原因及解决方法[J].电子设计工程,2011-01-05.

  [3]张玮,文福安,李江涛.J2EE Web应用中URL中文乱码问题的研究[J].计算机时代,2008-10-02.

  [4]朱明伦.管理技术在Web2.0应用中的研究[J].上海师范大学,2006-04-01.

  [5]邹俊.基于Oracle数据库系统性能调整与优化研究[J].江西财经大学,2006-10-01.

【WEB开发中不同情况下的乱码处理方案】相关文章:

1.Web服务中的异常处理

2.响应式web中的表格处理

3.Java开发web的几种开发模式

4.Web开发的教程图解

5.如何面试Web前端开发

6.web前端开发简历范文

7.WEB开发系的求职信

8.web开发的岗位职责要求