现代主义的乱码

2024-10-21

现代主义的乱码(共5篇)

现代主义的乱码 篇1

1 前言

在使用JSP技术开发Web应用程序时, 中文乱码是一个必然会遇到的问题, 往往让编程者感到很困惑。其乱码主要出现在页面显示, URL传中文参数, 表单提交数据给服务器以及存取数据库中的数据这些应用场景中。下面就介绍如何解决上面提及到的中文乱码问题。

2 解决在 JSP 页面显示中的中文乱码

解决在普通JSP页面显示中文时出现的乱码问题主要采用下面的方法。在JSP页面代码的第一行用page指令定义页面的编码方 式。支持 简体中文 的编码方 式有“UTF-8” ,“GB2312”或“GBK”。其代码如下

<%@page contentType= “text/html;

charset=支持简体中文的编码方式” %>

在整个站点中所有的编码方式必须统一。本文中后面以使用GBK编码为例。

<%@page contentType= “text/html;

charset=GBK” %>

3 URL 传递中文参数的乱码

<% @ page language = " java" ?contentType = " text/html;charset=GBK" %>

<%

String myname = request.getParameter (" myname") ; %>

url超链接传中文参数

获取到的参数是:<%=myname%>

在上面的例子中, 如果不进行中文参数的乱码处理, 获取到的参数值显示出来就是乱码。对于通过URL超链接传递中文参数是乱码这个问题, 其解决办法是修改Tomcat服务器的配置文件。具体是修改Tomcat安装目录下的conf目录下的server.xml配置文件。修改后的代码如下:

注意, 如果只是对获取到的中文字符串参数进行转码和设置JSP页面的编码方式都是不能解决这个乱码问题的。

4 解决访问数据库时的乱码

在访问MySQL数据库时, 会遇到乱码问题, 是因为MySQL数据库默认使用的编码方式是不支持简体中文的。因此只要改变MySQL数据库服务器的配置以便解决乱码问题。

把图1中的“Character Set”设置为“GBK”。

5 解决表单提交数据到服务器的乱码

表单提交的数据需要提交到服务器端, 一般是由Servlet或Action来获取, 而且必须进行乱码处理。可以使用下面的硬编码方式, 代码如下:

String myname = new String (request.getParameter

(" myname") .getBytes (" ISO-8859-1") , " gbk") ;

在Servlet或Action中进行硬编码的方式解决中文乱码问题的效率很低, 也很繁琐。下面介绍使用过滤器来解决该乱码问题。

5.1 新建过滤器

在mybean包中创建名为GbkCodeFilter的类, 类继承自“javax.servlet.Filter”。注意是javax包下的servlet包下的filter,因此该过滤器又称为Servlet过滤器。其代码如下:

其中, doFilter () 方法中的代码是自己编写的。

5.2 配置过滤器

过滤器建好以后还起不了作用, 需要在web.xml文件中进行配置。该文件的位置是: WebRootWEB-INFweb.xml。其配置代码如下:

这样, 表单提交数据会经过过滤器的处理再到达Servlet或Action。因此获取到的就不再有乱码了。

6 解决 Eclipse 集成开发环境中的中文乱码

在Eclipse开发环境或者MyEclipse的集成开发环境中,打开由其他编辑器编辑的JSP文件时会出现中文乱码, 其原因是它们默认的JSP编码方式为ISO-8859-1。所以为了解决这个问题, 只需要改变Eclipse或者是MyEclipse开发环境中对JSP页面的默认编码 , 把其修改成支持简体中文的编码方式 ,如GBK。

7 结语

对于JSP中的中文乱码问题的处理需要分清原因, 采用相应的解决办法。需要注意的是整个Web应用程序的编码一定要统一。

摘要:介绍在JSP中解决页面显示的中文乱码、URL传递参数、数据提交后的中文乱码以及访问MySQL数据库的中文乱码问题。

关键词:中文乱码,Filter过滤器,编码方式

现代主义的乱码 篇2

<% @language=vbscript codepage=936%>

1.若是html文件(.htm .html)

在中加上

2.若是PHP/cgi文件(.php .php3 .php4)

在每个PHP文件第一行加上

3.若是asp文件(.asp .jsp)

下面言归正传,说说asp源文件在国外服务器上中文问题的解决办法

1.首先,把您的asp源文件放在 IIS 里进行全面测试,调用每一项功能,确认它完全能够使用,并正确显示中文,并打开 *.mdb 数据库文件查看中文显示是否正常,全部通过后,做好备份文件,即可执行第二步。

2.如果,您根本不懂 asp 的话,最简单的方法是打开 所有 *.asp 文件,并在第一行插入 <%@ codepage=“936” %>,

例外情况:

① 如果第一行是以 <%@ LANGUAGE=“VBs cript” %> 开头,则把第一行改为:<%@ codepage=“936” LANGUAGE=“VBs cript” %>

② 如果第一行是以 或 开头,则不加入。

3.第二步完成后,再用 IIS 对每一项功能进行测试,如显示 conn.asp line 1, 即为错误信息,意思是: conn.asp 源文件第一行有错,那就把 <%@ codepage=“936” %> 删除即可,一些例外错误,请到search.microsoft.com/default.asp ;;这里,输入“错误信息”查询即可,全部功能测试可行后,即可上传至国外服务器上,进行测试。

4.方法还是:调用每一项功能,全部能正确使用并能显示中文后,再“下传”*.mdb 文件(非常重要),打开,确认能正确显示中文,大功告成。另外在外国服务器上用ACESS的中文显示方法不用转化数据库ACESS2000,只需在ASP第一行加入<%@ codepage=1256 %>怎么解决外国空间中文显示出问题的问题

非程序生成的文字可以显示。但程序生成的文字就只有E文可以显示了。中文全是?号,这是数据库乱码引起的。

方法一:

使用 Microsoft Access 2000 打开数据库,选择工具菜单>数据库实用工具>转换数据库>到早期 Access 数据库版本。OK!

方法二:

后来订阅了微软的新闻组,在微软的新闻组dotnet.framework.aspplus.general中发现有讨论这个问题的文章,方法为添加<%@ CODEPAGE = “936” %>到每一页的开头,有点类似于jsp中的<%@ page contentType=“text/html;charset=gb2312”%>赶紧测试了一下,果然OK!!!

例子如下面所示:

以下是引用片段:

<%@ CODEPAGE = “936” %>

<%@ Import Namespace=“System.Data” %>

<%@ Import Namespace=“System.Data.ADO” %>

<%@ Import Namespace=“System.Globalization” %>

方法三:

添加一个config.web文件到web目录下,建立一个文件config.web,内容如下,放在WEB目录下

以下是引用片段:

requestencoding=“utf-8”

responseencoding=“utf-8”

/>

PHP空间乱码处理方法

首先按照你使用的程序提供商提供的方法去乱码,如果无法奏效,那么:

可以通过修改.htaccess文件来实现,只要加入这句语言,改为你希望的编码,

以下是引用片段:

AddDefaultCharset off

AddType text/html;charset=gb2312 html

或者

以下是引用片段:

AddDefaultCharset off

AddType text/html;charset=utf-8 html

现代主义的乱码 篇3

关键词:JSP,Web,MySQL,乱码

一、JSP中存在的中文乱码的原因

一般情况下, 字符串被Java应用程序转化之前, 是根据操作系统默认的编码方式编码所以。在Java程序运行时, 就面临着从Unicode编码到对应的操作系统及浏览器支持的编码格式转换的问题在此过程中。每一步都必须转换正确。如果有一个步骤转换出现问题。就会出现汉字乱码。

二、JSP开发中文乱码问题表现及解决方案

在JSP开发过程中出现乱码的原因可谓多种多样。总结起来主要有以下几个方面:

2.1 JSP页面中文乱码。JSP页面显示的是乱码在访问某个JSP界面或者Servlet产生的界面时产生。对此要分析其乱码的来源, 一种是HTML中的中文乱码, 另一种是在JSP中动态输出的中文乱码。

针对上述问题只需要设置J S P或者S e r v l e t的eontentType属性即可。对于JSP中的设置使用的是page指令:

2.2 URL传递参数中文乱码。对于URL传递中文参数乱码这个问题, 其处理方法比较特殊, 需要修改Tomcat服务器的配置文件才能解决问题。具体改后的代码如下:

2.3表单提交中文乱码。用户提交的数据乱码是指request对象取得用户提交的中文信息后。输出到控制台是乱码。对于此问题的解决方案如下:

2.4 Eclipse或My Eclipse中JSP文件中文乱码。在Eclipse或者MyEclipse中由于默认的JSP编码格式为ISO-8859-1, 所以当打开由其他编辑器编辑的JSP文件时会出现乱码。对此只需要更改一下Eclipse或者是My Eclipse中对JSP的默认编码即可。其解决方式如下:

A、Myeclispe Window->Preferences弹出属性窗口

General->Workspace设置Text file encoding全局设置。

B、右键你的项目---属性---Text file encoding项目设置

2.5数据库中的数据乱码问题。数据库中的数据是乱码的主要原因在于数据库中传人的是GB2312/GBK编码。而对方却按照ISO8859—1处理。解决方法如下:

在JSP页面中使用如下代码:

三、结论

总之, JSP文件本身编译时产生的乱码问题和其他媒介交互产生的乱码问题是造成JSP页面或数据库中文乱码的主要原因。因此在JSP开发过程中建议在开发人员尽量不要写中文, 如果必须写的话, 尽量手动带参数-ecoding GBK或-ecoding gb2312或-ecoding UTF-8编译。另外对于JSP, 在文件头加上<%@page contentType="text/html;charset=GBK"%>就能基本上就能解决上述问题的产生。

参考文献

[1]BruceEckel.JSP编程思想[M].机械工业出版社, 2008, 10:1-378.

[2]FLANAGAN.JSP技术手册[M].中国电力出版社, 2010, 6:1-465.

现代主义的乱码 篇4

中文利用了特殊的字符编码方式, 所以在利用JSP技术进行动态网页开发过程中, 如果没有注意到这一点, 很可能会造成中文乱码问题。中文乱码问题出现的原因有很多, 所以本文主要介绍了中文乱码出现的主要场景, 进而针对其出现的原因提出了响应的解决策略, 从而为更多的JSP技术开发人员提供参考。

1 字符常见的几种编码格式

字符常见的几种编码格式如下:第一, Lain-1编码, 这种编码格式仅仅支持英文系列的编码, 不支持汉字编码, 因此在具有汉字的情况下, 一定不能使用这种编码方式;第二, GB2312/GBK编码, 这种编码方式是专门用来表示汉字的, 而且支持简体字和繁体字两种不同的表示方式;第三, unicode编码, 这种编码方式支持中文的编码, 同时也支持英文的编码, 但是它无法很好地对Latin-1编码格式进行兼容;第四, UTF-8编码, 目前很多开发的场景下都是使用该种编码方式进行编码, 它不仅支持中英文, 而且对其他编码方式都能做的很好的兼容。

2 影响JSP技术中文乱码的外部因素

其实在利用JSP技术进行动态网页的开发过程中, 会受到很多外在因素的影响, 这些因素也是造成中文乱码的重要因素, 主要体现在以下几点:

2.1 操作系统的字符编码

由于操作系统存在很多版本, 因此其字符编码也不尽相同, 对于很多操作系统来讲, 默认的编码方式是Latin-1的编码方式, 即很多操作系统默认是不支持中文的。但是, 值得庆幸的是, 目前很多操作系统可以通过修改其配置文件, 更改它的编码方式, 能够满足不同用户对操作系统的需求。所以, 当用户选择相应的操作系统后, 需根据一定的方法对其编码方式进行修改, 从而使得操作系统能够更好地支持中文。

2.2 浏览器的字符编码

在利用JSP技术进行开发和设计的过程中, 需要利用浏览器来查看开发的界面样式, 但是如果浏览器的字符编码不支持中文的样式, 那么也会造成中文乱码情况的出现。同样, 浏览器的种类非常多, 不同的浏览器有着不同的默认字符编码方式, 所以为了使得浏览器能够支持中文, 防止中文乱码现象的出现, 需要根据浏览器的种类和版本等信息, 及时对浏览器的编码方式进行更改, 使其能够支持中文汉字的编码。

2.3 JSP技术开发软件的编码方式

利用JSP技术进行动态网页的开发过程中, 也需要利用一定的开发软件进行开发, 这些开发软件具有语法查错、自动浏览等功能, 能够很好地辅助开发人员进行开发。然而, JSP技术的开发软件也设置了默认的编码格式, 大多数的开发软件默认都是Latin-1编码格式, 这种编码格式不支持对中文字符的编码, 所以为了能够正常地显示汉字, 需要修改JSP技术开发软件的编码, 从而能够更好地进行网页的开发。

3 影响JSP技术中文乱码的内部因素

当用户在浏览器中输入地址, 发送请求之后, 请求会经过一些中间的过程被发送到web服务器, 然后web服务器会将这次请求发送给相应的JAVA应用程序进行执行, JAVA应用程序中的JSP引擎会查找一些标签并进行转换, 然后将响应返回给请求的用户。

3.1 文件编译过程中的乱码

通过以上的步骤可以看出, 形成中文乱码的过程会出现在以下几个方面:第一, JSP文件在执行过程中, 会默认使用Latin-1的编码方式, 这样就可能造成中文的乱码, 因此必须要修改JSP引擎的编码方式;第二, JAVA文件, 当浏览器第一次请求时, 会生成JAVA文件, 该文件会根据<complie-charset>对其中的字符进行对应编码方式的解析, 所以该标签必须要被设置为UTF-8的编码方式;第三, class文件中的字符串, JAVA文件需要生成为class文件才能被执行, 所以class文件中的编码方式对应中文也会造成一定的影响, 所以以上列举的几种文件都需要修改为支持中文字符的编码方式。

3.2 数据库中的乱码

在利用JSP技术进行开发的过程中, 将动态页面的结果返回会用户时, 很可能会使用到对数据库的操作, 当发送给数据库的编码方式支持中文时, 而返回的结果却是中文的乱码, 这就有可能是数据库的字符编码方式不对引起的, 主要是因为大多数的数据库通常也是选择默认Latin-1作为字符串的编码方式, 所以这种默认的字符串编码方式并不支持中文。所以同样需要对数据库的编码方式进行一定的修改, 使其能够更好地支持中文。

根据以上的分析和论述可知, 在利用JSP技术进行开发的过程中, 很多地方都可能会引起中文乱码, 这就要求JSP技术的开发人员做的以下几点:第一, 对JSP技术的开发环境非常熟悉, 知道哪些地方需要对字符编码进行设置, 从而能够更好地支持对中文的编码;第二, 要求JSP技术的开发人员在出现中文乱码后, 可以根据中文乱码出现的位置进行排查, 从而尽快解决中文乱码问题。

4 小结

为了更好地显示中文, 需要对中文进行一定的编码转换, 然而正是这一问题, 使得JSP技术在进行动态网页的开发过程中, 会时常出现中文乱码问题, 给开发人员造成了一定的困扰。因此, 本文通过简要介绍JSP技术在开发过程中出现中文乱码的主要场景, 进而针对这些情况下出现中文乱码的原因, 从而提出了响应的解决策略。相信, 随着JSP技术的不断发展, 能够更好地解决中文乱码问题, 从而进一步提高JSP技术开发人员的工作效率。

摘要:JSP技术是进行动态网页设计过程中的关键技术, 然后在进行网页的设计和开发过程中, 利用JSP技术会经常出现中文乱码的问题, 从而影响了动态网页的正常使用。因此, 本文通过简要介绍JSP技术开发过程出现中文乱码的主要原因, 进而针对中文乱码出现的不同原因提出了相应的解决策略。

关键词:JSP技术,动态网页技术,中文乱码,显示乱码

参考文献

[1]陈小瀚.中文编码原理及其乱码问题的探讨[J].山东科技信息"科学教研”.

现代主义的乱码 篇5

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

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

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

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

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

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

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

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

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

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

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

4 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代码转换字符而不会产生乱码。

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

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

参考文献

[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.

上一篇:良好预习习惯下一篇:动能和动能定理