怎么解决SQL server 2000的中文问题?

03-05-28 lanya

我下载jive在本机上运行。

环境:winxp+tomcat4.19+SQL server 2000

现在一切都可以运行啦,可是就是不能发中文信息?

请教高手怎么解决?

red
2003-05-28 19:15

首先找到写库的类DbFroum和DbFroumMessage,在写库前,将字符串转码。由ISO8859_1转为GBK;

其次将所有jsp页面的charset由ISO8859_1换为GBK;

这样做过后一切OK.

lanya
2003-05-29 09:42

red,能不能把字符转换的代码贴出来?

这样讲好抽象哟!

red
2003-05-29 10:53

public String getCHStr(String str){

try{

if(str==null)

return null;

str=str.trim() ;

str= new String(str.getBytes("ISO8859_1"),"GBK");

return str;

}catch(Exception e){

e.printStackTrace() ;

}

return null;

}

如:pstmt.setString(2, getCHStr(name));

tiyi
2003-06-03 14:53

我遇到的中文问题是如下:

(tomcat)

sqlserver 2000 采用nvarchar字段,jsp用:

page contentType="text/html; charset=ISO8859_1"

数据不经任何转码工作即可存储到数据库中;

用“查询分析器”查出为:ÖÐÎÄµÄ (内容:中文的)

用jdbc select 出,可直接在界面上显示,没有任何乱码

但是现在问题出现了,就是用select like语句的时候

不论如何都无法like出需要的数据;

以上面的数据“中文的”为例

String sql = "select * from table where field like '%"+str+"%'";

上面的str是从request.getParamter中获取,毋庸置疑是8859_1,而

拼接成的sql也是8859_1编码,将此sql语句经由jdbc 执行后,却无法返回任何数据;

还望各位大侠出招,多谢