J2EE SQL Server中文乱码问题解读方法

发布时间:2023-08-17 00:04:45

J2EE带动了Java在企业级的发展,但随着一些轻量级组件的出现,J2EE的臃肿和开发难度高的缺点越来越引起了许多人的注意,EJB2.0也被许多人称为累赘。下面是小编整理的关于J2EESQLServer中文乱码问题解读方法,欢迎大家参考!

一、Java中文问题的由来

J2EE SQL Server中文乱码问题解读方法

Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台*,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。

首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。基于这种乱码,建议在Java文件中尽量不要写中文(注释部分不参与编译,写中文没关系),如果必须写的话,尽量手动带参数-ecodingGBK或-ecodinggb2312编译;对于JSP,在文件头加上<%@pagecontentType="text/html;charset=GBK"%>或<%@pagecontentType="text/html;charset=gb2312"%>基本上就能解决这类乱码问题。

本文要重点讨论的是第二类乱码,即Java程序与其他存储媒介交互时产生的乱码。很多存储媒介,如数据库,文件,流等的存储方式都是基于字节流的,Java程序与这些媒介交互时就会发生字符(char)与字节(byte)之间的转换,例如从页面提交表单中提交的数据在Java程序里显示乱码等情况。

如果在以上转换过程中使用的编码方式与字节原有的编码不一致,很可能就会出现乱码。

二、解决方法

对于流行的Tomcat来说,有以下两种解决方法:

1)更改D:\Tomcat\conf\server.xml,指定浏览器的编码格式为“简体中文”:

方法是找到server.xml中的

enableLookups="false"redirectPort="8443"acceptCount="100"

connectionTimeout="20000"disableUploadTimeout="true"URIEncoding='GBK'/>

标记,粗体字是我添加的。

可以这样验*你的更改是否成功:在更改前,在你出现乱码的页面的IE浏览器,点击菜单“查看|编码”,会发现“西欧(ISO)”处于选中状态。而更改后,点击菜单“查看|编码”,会发现“简体中文(GB2312)”处于选中状态。

b)更该Java程序,我的程序是这样的:

publicclassThreeParamsextendsHttpServlet{

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

response.setContentType("text/html;charset=GBK");

...

}

}

粗体字是必需要有的,它的作用是让浏览器把Unicode字符转换为GBK字符。这样页面的内容和浏览器的显示模式都设成了GBK,就不会乱码了。

看了J2EE SQL Server中文乱码问题解读方法还看了:
  • SQL Server无法连接解决方案

    SQLServer无法连接究竟应该如何解决呢?提示"无法连接到服务器,用户xxx登陆失败"是因为什么原因呢?下面是由百分网小编为大家准备的SQLServer无法连接解决方案,喜欢的可以收藏一下!了解更多详情资讯,请关注应届毕业生考试网!SQ...

  • sql server中避免死锁的方法

    一、死锁的四个必要条件1、互斥条件(Mutualexclusion):资源不能被共享,只能由一个进程使用。2、请求与保持条件(Holdandwait):已经得到资源的进程可以再次申请新的资源。3、非剥夺条件(Nopre-emption):已...

  • java压缩zip文件中文乱码问题解决方法

    通常用java来打包文件生成压缩文件后,有如下两个地方会出现乱码,怎么解决呢?下面是相关的知识,欢迎阅读。1、内容的中文乱码问题,这个问题网上很多人给出了解决方法,主要有两种方法:一是修改sun的源码;另一个是使用开源的类库org.apac...

  • 解决PHP中文乱码问题

    导语:PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。下面我们来看看解决PHP中文乱码问题,希望对大家有所帮助。一.首先是PHP网页的编码1.php文件本身的编码与网页...

  • 远程连接SQL Server 2000的方法

    一看ping服务器IP能否ping通。这个实际上是看和远程sqlserver2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sqlserver2000服务器的IP拼写正确。二在Dos或命令行下输入tel服务器...