这下坏了!中文!中文! 你可以用jdk包中带的nativetoascii.exe这个工具将你的源文件中的中文转换,然后编译,运行试试! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 needle误会了。我是指当以中文作为参数传进来时,有时需要getBytes("gb2312")转换,否则显示??号而有时传进来的参数转换后是??号,不转换却正常。但是按中文查寻时却不不行,如:select * from tables where tables_name='蚂蚁'此句直接在Mysql中执行没问题。 用2。0以上的jdbc不会有select * from tables where tables_name='蚂蚁'的问题下面有段代码。可以看看试试其中zhpara是用request。getparamater后,处理获得的值zhsql是对sql语句处理后,再用/*--------------------- Name: 中文参数处理-----------------------*/import java.util.*;import java.io.*;import java.lang.* ;import java.lang.String ;public class ZhPara{ public static synchronized String zhPara(String s) { try { s=new String(s.getBytes("iso8859-1"),"gb2312"); } catch(Exception e) { return ""; } return s; } public static synchronized String zhSql(String s) { if(s==null) return ""; int oldStringLen=0; oldStringLen=s.length(); StringBuffer spaceString = new StringBuffer(); for(int i=0;i<=oldStringLen;i++) {// s=s.concat("a"); spaceString.append(" "); } s=s+spaceString.toString (); return s; }} 不改代码的话,用jdk1.3以上版本可以解决sql中文问题(如果你用jdbc-odbc bridge)而中文参数的问题,不改代码,我也不知道 就等jdk1。4吧, 由于国际化的工作并不是在国内完成的,所以在这些基本类发布之前,没有经过严格的测试,所以对中文字符的支持并不像 Java Soft 所声称的那样完美。前不久,我的一位技术上的朋友发信给我说,他终于找到了 Java Servlet 中文问题的根源。两周以来,他一直为 Java Servlet 的中文问题所困扰,因为每面对一个含有中文字符的字符串都必须进行强制转换才能够得到正确的结果(这好象是大家公认的唯一的解决办法)。后来,他确实不想如此继续安分下去了,因为这样的事情确实不应该是高级程序员所要做的工作,他就找出 Servlet 解码的源代码进行分析,因为他怀疑问题就出在解码这部分。经过四个小时的奋斗,他终于找到了问题的根源所在。原来他的怀疑是正确的, Servlet 的解码部分完全没有考虑双字节,直接把 %XX 当作一个字符。(原来 Java Soft 也会犯这幺低级的错误!) 如果你对这个问题有兴趣或者遇到了同样的烦恼的话,你可以按照他的步骤对 Servlet.jar 进行修改: 找到源代码 HttpUtils 中的 static private String parseName ,在返回前将 sb(StringBuffer) 复制成 byte bs[] ,然后 return new String(bs,”GB2312”)。作上述修改后就需要自己解码了: HashTable form=HttpUtils .parseQueryString(request.getQueryString())或者 form=HttpUtils.parsePostData(……) 千万别忘了编译后放到 Servlet.jar 里面。 请看"http://www.cn.ibm.com/developerWorks/java/java_chinese/index.shtml" 而且AntGhazi(蚂蚁勇士) 的系统多大啊?能写完了才发现中文问题??没有单元测试?? tomcat有的网站上有ServletAPI源码下载jakarta-servletapi-4.0-b3.zip 622 K 小弟第一次发帖,请高手帮忙指点DBReader的使用问题,谢谢了! 两个字符型数据如何相乘? 关于HashMap中value的问题 怎样定时运行java程序 请问怎么用JAVA的IO操作实现文件的删除? 请高手Swing看一下 数据库显示在表格里的实例,哪有,给一个... 我是新手,以前学C#和。NET的。我想学JAVA,可是不知道JAVA运行环境是什么!要安装什么才能运行我的程序? 大哥!求教! java 如何通过点阵数组识别汉字 多个数据表可不可以只生成一个entitybean? IE 6.0?为什么我的applet 不能显示?
我是指当以中文作为参数传进来时,有时需要getBytes("gb2312")转换,否则显示??号
而有时传进来的参数转换后是??号,不转换却正常。
但是按中文查寻时却不不行,如:
select * from tables where tables_name='蚂蚁'
此句直接在Mysql中执行没问题。
下面有段代码。可以看看试试
其中zhpara是用request。getparamater后,处理获得的值
zhsql是对sql语句处理后,再用
/*---------------------
Name: 中文参数处理
-----------------------*/
import java.util.*;
import java.io.*;
import java.lang.* ;
import java.lang.String ;public class ZhPara
{
public static synchronized String zhPara(String s)
{
try
{
s=new String(s.getBytes("iso8859-1"),"gb2312");
}
catch(Exception e)
{
return "";
}
return s;
} public static synchronized String zhSql(String s)
{
if(s==null) return "";
int oldStringLen=0;
oldStringLen=s.length();
StringBuffer spaceString = new StringBuffer();
for(int i=0;i<=oldStringLen;i++)
{
// s=s.concat("a");
spaceString.append(" ");
}
s=s+spaceString.toString ();
return s;
}}
能写完了才发现中文问题??没有单元测试??
jakarta-servletapi-4.0-b3.zip
622 K