> 馆藏中心

C# 中文编码处理无效是什么原因?

来源:cnblogs 编辑:张华

你用是Tomcat 吗?如果是的话有下面几个地方需要你看看是否配置正确:(1)Tomcat 的 conf 下的server.xml文件中将connectionTimeout="20000redirectPort="8443"/>里添加上后面3个编码的设置connectionTimeout="20000redirectPort="8443useBodyEncodingForURI="trueIEncoding="utf-8URIEncoding="utf-8"/>(2)然后在servlet中配置如下:如果你用的是 post方式解决方案:request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");get方式String string=request。getParamers("");String=new String(string.getBytes("ISO8859-1www.179s.com防采集请勿采集本网。

System.Web.HttpUtility.UrlEncode("中文内容");你需要的是這個奖励园豆:5

============================================

由于问题给出的信息不足,无法具体的来解答这个问题,请补充提问内容或提供相关图片,请具体说清是系统的提示,还是无法显源示,只是显示器上的提示。一般如果百是系统提示,表示打开某种格式

哈哈,显示问题?直接Console.WriteLine(Content)会打出什么?HtmlEncode:是将html源文件中不容许出现的字符进行编码,通常是编码以下字符:"<"、">"、"&"、"""、"'"等;

在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱码 问题以及解决方法。1、JSP页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要

如何2113解决乱码的问题?JSP和Servlet的六5261种中文乱码处理方法4102 一、表单提交时出现乱码1653:在进行表单提交的时候,经常提交一些中文,自然就避免不了出现中文乱码的情况,对于表单来说有两种提交方式:get和post提交方式。所以请求的时候便有get请求和post请求。每种方式都有着不同的解决方法,之所以出现乱码,原因就在于get请求时,其传递给服务器的数据是附加在URL地址之后的;而post的请求时,其传递给服务器的数据是作为请求体的一部分传递给服务器。这也就导致了对它们所产生的乱码的处理方式是不同的。1、客户端的get请求 对于不同的请求方式,解决乱码的问题也是不一样的,对于客户端的get请求来说,服务器端处理要想不出现乱码,解决这个问题稍微复杂一些,需要用到String类型的构造函数,其中的一个构造函数就是用指定的编码方式去解码,一般都用“UTF-8”的方式。只要在服务器端将请求得到的参数重新构造成一个字符串就行了。经过构造之后,客户端输入中文,且表单时get请求的情况下,str就变成了中文了。2、客户端的post请求 对于客户端的post请求来说,处理乱码的问题就比较简单了,因为请求的数据时作为请求体的一部分传递给服务器的,所以只要修改请求内的编码就行了。只要在服务器端的最开始处将请求的数据设置为“UTF-8”就行了,输入如下语句:request.setCharacterEncoding(“UTF-8”);这样用户在服务器端获取到的中文数据就不再是乱码了。二、超链接时出现乱码(低版本浏览器不行IE6)在Web开发中,挺多的时候都是通过超链接去传递中文参数的,这也会导致在显示的时候也会出现乱码,对于超链接来说,它实际上是向服务器端发送了一个请求,而它发出的请求是属于get请求,所以对于超链接的乱码来说,它处理乱码的方式和表单的get请求出现乱码的方式是一样的。三、重定向时出现乱码(低版本浏览器不行IE6)有时写上response的sendRedirect方法进行重定向时也会出现乱码,重定向时实际上也是向服务器发送了一个请求,所以解决乱码的方法和和上面是一样的。四、浏览器版本低导致的乱码 上网的时候,有时提交的一些信息在地址栏显示的是“%2C%C6%CC%C6”的字样,其实这都是防止出现乱码进行的解决方案,如果你的浏览器是IE6或以下版本,则我们的第二种情况和第三种情况会出现乱码(尤其是当中文是奇数的时候),这就不好使了所以我们必须采用另一种比较实际的作法:在java.net包中提供了URLEncoder类和URLDcoder类,这两个类又分别提供了encode和decode两个静态方法,分别用于进行编码和解码。我们将要传递的中文参数进行编码之后,在传递给服务器,服务器解码之后,就可以显示中文了。进行编码:URLEncoder.encode(stuname,”UTF-8”)传递给服务器:”/1.jsp?stuname”>传递进行解码:URLDecoder.decode(stuname,”UTF-8”)五、返回浏览器显示的乱码 在Servlet编程中,经常需要通过response对象将一些信息返回给浏览器,给我们的客户端,而我们在服务器端显示的中文,但是响应给客户端浏览器却是乱码,这主要是由于response对象的getWriter()方法返回的PrintWriter对象默认使用“ISO-8859-1”字符集编码进行Unicode字符串到字节数组的转换,由于ISO8859-1字符集中根本就没有包含中文字符,所以Java在进行转换的时候会将无效的字符编码输出给客户端,于是便出现了乱码,为此ServletResponse接口中便定义了setCharacterEncoding、setContentType等方法来指定getWriter方法返回的PrintWriter对象所使用的字符集编码,所以我们在写Servlet程序中,在调用getWriter方法之前设置这些方法的值。只要编写Servlet文件中含有响应给客户端的信息,那么就要写上这两句话。最好写上第二句话,因为它的优先级高,它的设置结果将覆盖setContentType等方法设置的字符编码集。六、修改Tomcat的编码 在get请求所导致乱码问题中,还有一种解决的方案,我们常用Tomcat作为运行Servlet和JSP的容器,而Tomcat内部默认的编码是ISO-8859-1,所以对于get请求方式,其传递的数据(URI)会附加在访问的资源后面,其编码是Tomcat默认的,如果修改该URI的编码,那么对于所有的get请求方式便不会出现乱码了包括上边说的重定向和超链接,在Tomcat的配置文件server.xml中找到修改Tomcat的端口的地方,在其内部加入URIEncoding属性,设置为和你的项目中所设的编码一样的值,这里全部都是UTF-8。在编写Servlet和JSP的时候,为了避免出现乱码,最重要的就是:采用一致的编码,如果编码都一致了,肯定不会出现乱码内容来自www.179s.com请勿采集。

本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。本文《C# 中文编码处理无效是什么原因?》转载自cnblogs,版权归原作者所有,若侵权请联系:E-MAIL:513175919@qq.com
违法违规信息请立即联系本网可获得现金奖励,TEL:1-8-2-1-0-2-3-3-3-8-1(电话仅供违法违规信息举报,侵权类信息请EMAIL。)

www.179s.com false 互联网 http://www.179s.com/jsblogcnk/po/pohodk.html report 3456 System.Web.HttpUtility.UrlEncode("中文内容");你需要的是這個奖励园豆:5============================================哈哈,显示问题?直接Console.WriteLine(Content)会打出什么?HtmlEncode:是将html源文件中不容许出现的字符进行编码,通常是编码以下字符:"<"、">"、&

热门图片

经济金融企业管理法律法规社会民生科学教育降生活体育运动文化艺术电子数码电脑网络娱乐休闲行政地区心理分析医疗卫生