紧急求救啊,java中文编码问题

问题描述

是这样,我在jsp服务器上建立了个servlet,(LINUX系统的服务器),然后想在我本机上利用URL和URLConnection来POST信息过去,怎么搞的中文过去了就是不能正确显示,服务器端接受到的是一堆???,怎么搞就是不行。我本机上(eclipse开发,eclipse编码采用GBK)post信息的函数如下:publicStringpost(StringurlStr,Stringargs,Stringcharset){if(charset==null||charset.equals("")){charset="utf-8";}try{URLurl=newURL(urlStr);URLConnectionconn=url.openConnection();conn.setConnectTimeout(5000);conn.setReadTimeout(5000);conn.setDoOutput(true);OutputStreamWriterout=newOutputStreamWriter(conn.getOutputStream(),charset);out.write(args);out.flush();out.close();returnpipe(conn.getInputStream(),charset);}catch(Exceptione){//e.printStackTrace();}returnnull;}这里的pipe就不用管了,然后在args参数里面有中文的时候,服务器端servlet接受到的就是一堆???。我曾经将args参数中的中文进行了编码转换,怎么转都不行:s=newString(s.getBytes("ISO-8859-1"),"UTF-8");s=newString(s.getBytes("ISO-8859-1"),"GBK");s=newString(s.getBytes("ISO-8859-1"),"GB2312");s=newString(s.getBytes("UTF-8"),"ISO-8859-1");s=newString(s.getBytes("UTF-8"),"GBK");s=newString(s.getBytes("UTF-8"),"GB2312");s=newString(s.getBytes("GBK"),"ISO-8859-1");s=newString(s.getBytes("GBK"),"GB2312");s=newString(s.getBytes("GBK"),"UTF-8");s=newString(s.getBytes("GB2312"),"UTF-8");s=newString(s.getBytes("GB2312"),"ISO-8859-1");s=newString(s.getBytes("GB2312"),"GBK");s=newString(s.getBytes("ISO8859_1"));s=newString(s.getBytes("UTF-8"));s=newString(s.getBytes("GBK"));s=newString(s.getBytes("GB2312"));s=newString(s.getBytes(),"ISO8859_1");s=newString(s.getBytes(),"UTF-8");s=newString(s.getBytes(),"GBK");s=newString(s.getBytes(),"GB2312");所有这些都试过了,都不行啊。如果我args参数里面没有中文,全部是英文的话,程序运行正确,这说明只是中文编码问题,到底要怎么编码转换啊?救救,从今天晚上8点搞到现在了,人都困了,还是没搞定,救命啊。

解决方案

解决方案二:
帮忙民顶机.............
解决方案三:
猫的Server.xml的Connector添加一个URIEncoding="UTF-8"或GBK的试试,上次我也是怎么设置页面的编码都不对.只有在这里改了.不保证可以
解决方案四:
乱码的根源就是多处地方使用的编码不统一造成的,因为很多环节都有各自的编码设置,所以经常出现头疼的乱码问题。lz可以仔细检查一下是否编码一致。Linux系统有自己的编码设置,是不是这地方没有更改造成的。
解决方案五:
建议使用过滤器
解决方案六:
发内容的时候,将gbk转成utf-8。在服务器端再转回来。
解决方案七:
用java.net.URLDecoder中的decode()和encode()方法编码和解码试试看,应该能解决
解决方案八:
out.write(args.getBytes("gbkOr..."));发送字节码最保险;
解决方案九:
建议过滤器,过滤所有
解决方案十:
打开tomcat的server.xml文件,找到区块,加入如下一行:URIEncoding=”GBK”
解决方案十一:
写一个过滤器
解决方案十二:
<Connectorport="8080"maxHttpHeaderSize="8192"maxThreads="1000"minSpareThreads="400"maxSpareThreads="500"enableLookups="false"redirectPort="8443"acceptCount="500"connectionTimeout="20000"disableUploadTimeout="true"URIEncoding='GBK'/>

打开tomcat安装目录下conf的server.xml文件URIEncoding='GBK'加上这句~
解决方案十三:
基本两步可以搞定90%:1.servlet上重写request,response编码格式2.如果不行写过滤器。。。试试基本不会再出现乱码了
解决方案十四:
写个过滤器一劳永逸
解决方案十五:
把tomcat中的server.xml在Connector行上中加上一句话添加一个URIEncoding="GBK",页面在进行转码就行

时间: 2024-10-19 14:43:58

紧急求救啊,java中文编码问题的相关文章

[紧急求救]SAP 4.6C 字符集问题

问题描述 [紧急求救]字符集问题本人有下面个问题不能解决,望大虾们给支点招,我都被这个问题骚扰N天了,还是没头绪:有个程序从表中读取喆这个字,然后通过RFC发送到Java写的一个程序里,但是到Java端后发现喆就变成了#字,从Java端往SAP发送喆后,在SAP端也变成了#字.问题:为什么喆会变成#字呢?系统背景:SAP4.6C/Java-UTF-8字符集 解决方案 解决方案二:有谁能否指点迷津?解决方案三:应该是数据类型的问题解决方案四:字符集设置问题,JCO建立连接的时候输入lang是否正确

紧急求救,在线等,hibernate插入更新数据报错

问题描述 紧急求救,在线等,hibernate插入更新数据报错 各位好: hibernate报错麻烦各位看一下,在本地和测试环境都没有问题.提到生产上后,就一直报这个错 2016-05-07 12:16:08:WARN http-8888-3 org.hibernate.util.JDBCExceptionReporter - SQL Error: 1, SQLState: 23000 2016-05-07 12:16:08:ERROR http-8888-3 org.hibernate.uti

c++-[紧急求救]C++:在循环结构中使用链表,程序运行终端

问题描述 [紧急求救]C++:在循环结构中使用链表,程序运行终端 如题.(这是图像处理中的中值滤波,不过问题不涉及图像处理)链表操作都没有问题,在另外的程序中测试过.这这段代码中第一次调用也没有问题,就是第二次到list.insert()时会跳出中断:这段代码如下: int i j x y p t;//p为当前像素位置 int a[arg*arg] = {0}; linklist list; for (y = 0; y<nHeight - arg + 1; y++) { for (x = 0;

紧急求救:android json 内存溢出

问题描述 紧急求救:android json 内存溢出 代码如下: public JSONObject SetDataToJson() { JSONObject LCYDataJSON = new JSONObject(); try { LCYDataJSON.put("MODE", lcydata.mode); LCYDataJSON.put("date", lcydata.date); LCYDataJSON.put("GPSSta", lc

net 2 0故障-紧急求救,打开页面出现未能加载文件或程序集“System.web.services……“错误

问题描述 紧急求救,打开页面出现未能加载文件或程序集"System.web.services--"错误 单位的一个系统,五一假期前一直都是正常使用的,假期回来打开页面突然出现错误,提示"未能加载文件或程序集='System.web.servicesversion=2.0.0.0culture=neutralpublickeyToken=b03f5f7f11d50a3a'"该系统使用的是.net 2.0,如果换成.net 4.0,页面可以显示,但只能浏览已有的信息,不

紧急求救!!php表单name值用变量表示的问题

问题描述 紧急求救!!php表单name值用变量表示的问题 我的渣代码里要根据数据库,动态生成不定数量的input框,这些框都是for循环出来的,唯一不同的name用循环变量$x表示 然后我再处理界面用_$point=$_POST['$x'];循环接受几个input值 结果值一个没少,但是值全是最后一个input的值,前几个空格输入的值全被覆盖了!! 很紧急,我不知道错哪里了 解决方案 用echo("input... name='" + x + "' size..."

在ls中用wininet.dll去ftp文件,上传的文件中文乱码,是不是有什么参数要设置,紧急求救!!!

问题描述 在ls中用wininet.dll去ftp文件,上传的文件中文乱码,是不是有什么参数要设置,紧急求救!!! 解决方案 解决方案二:我这边也是使用这种方式上传文件,没有发现你说的这个问题啊?

求救,java quartz每两天8点执行

问题描述 求救,java quartz每两天8点执行 因为有31号的原因不知道怎么配置,帮忙给定时quartz的公式. 解决方案 试试这个0 0 8 0/2 * *

紧急求救:c#的,后台弹确认对话框实现页面转向,紧急求救!谢谢大家!

问题描述 紧急求救:c#的,走后台方法后,弹出一"用户确认对话框"实现页面转向,用户点是转向一页面,点否转向另一页面.不一定非要局限在弹对话框,只要能实现完成某操作后给用户一个选择的机会并根据用户不同的选择转向不同的页面即可.十万火急!十分感谢!问题补充:我需要先走一部分后台方法,当之一部分方法执行完后根据用户不同的选择转向不同的页面,谢谢大家了 解决方案 解决方案二:c#Response.Write()输出js脚本解决方案三:Response.Redrict()根据条件转向

紧急求救:asp网站更换ip地址后浏览网页错误,无法访问!快救救我!

问题描述 紧急求救:asp网站更换ip地址后浏览网页错误,无法访问.....!快救救我 解决方案 解决方案二:补充问题,进入管理界面后网页全部变成快捷方式解决方案三:再详细些,目前已有的资料不足以明白你的问题所在解决方案四:是发布在公网上的网站吗?你说的快捷方式是指什么?解决方案五:网站发来看看就知道了解决方案六:域名重新解析没??LZ真实惜字如金啊!解决方案七:是不是数据库的连接字符串出问题了?解决方案八:他都说IP已经更新了呀.不过更新后哪有那么快就可以访问??更新后正常都在3个小时内生效,