超难中文问题,谁能解决?

时间:2022-07-24 21:55:45
<%@ page contentType="text/html; charSet=gb2312"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*"%>

out.println(new String(rs.getString("fx").getBytes("GB2312"), "iso-8859-1"));


网页上显示出来的是 “  &acute;&#840372;&#840381;荊&frac12;荊 ”!

rs.getString("fx")中的"fx"是sqlserver2000中的char(2)字段。
而且我还发现客户端反馈回的页面使用的是unicode编码格式,而且无法更改为“简体中文”编码格式。

如果使用 System.out.println(rs.getString("fx")); 方法却可以在tomcat控制台中正确打印出“借”或“还”。

14 个解决方案

#1


<%@ page contentType="text/html; charSet=GBK"%>
out.println(new String(rs.getString("fx").getBytes("GB2312"), "GBK"));

#2


错了。
out.println(new String(rs.getString("fx").getBytes(), "GBK"));

#3


<%@ page contentType="text/html; charSet=gb2312"%>
//try this
out.println(rs.getString("fx"));

#4


回 icecloud(冰云) ( ) 信誉:131 :
不行。

回  chanceqw() ( ) 信誉:100 :
之前已经试过,不行。

#5


我在struts里面就是直接读SQL server 2000里的中文
不需要任何转换

#6


这篇文章也许对你有帮助
http://www.mhdn.net/p/2002-08-02/5603.html

#7



http://expert.csdn.net/Expert/topic/2231/2231845.xml?temp=.1760675

方法很多的!

#8


清回答问题的大哥们先看清我已使用过的方法,以上你们所建议的方法我在提问时已经注明试过了。

#9


将<%@ page contentType="text/html; charSet=gb2312"%>这一句去掉试试。

#10


经常看见问中文问题的,为什么不使用utf-8编码呢?所有的中文问题都迎刃而解。何必那么麻烦呢?况且,utf-8不但支持简体中文,还支持繁体中文,日文,韩文
!!!!!!!!!!!!!!!!推荐使用utf-8编码!!!!!!!

#11


<%@ page contentType="text/html; charSet=gb2312"%>
这一句有与没有 客户端都默认采用unicode编码格式,而且不能更改为“简体中文”编码。

如果使用utf-8编码格式是不是只要在头加上
<%@ page contentType="text/html; charSet=utf-8"%>
这一句就可以了?我也试过了,还是乱码。
可是我奇怪的是如果使用 System.out.println(rs.getString("fx")); 方法却可以在tomcat控制台中正确打印出“借”或“还”,说明在向数据库读取该字段时没有错误,可为什么就是在html页面总显示乱码呢!

#12


没人会了?
斑竹呢?出来帮帮忙呀。

#13


你定义一个METHOD
加个方法:
<%!public getStr(String str) throws Exception
  {   try{ 
    String temp=str;
    byte[] temp_p=temp.getBytes("ISO-8859-1");
    return new String(temp_p,"GBK");;
   }catch(Exception e)
   {
   }
%>
然后在插入数据库之前将有中文的变量用这个方法将变量转换一下:
String text=null;
if(request.getParameter("text")!=null&&request.getParameter("text")!="")
{
   text=getStr(request.getParameter("text"));
 }

#14


请说明一下你的out.println()的out是什么类型

#1


<%@ page contentType="text/html; charSet=GBK"%>
out.println(new String(rs.getString("fx").getBytes("GB2312"), "GBK"));

#2


错了。
out.println(new String(rs.getString("fx").getBytes(), "GBK"));

#3


<%@ page contentType="text/html; charSet=gb2312"%>
//try this
out.println(rs.getString("fx"));

#4


回 icecloud(冰云) ( ) 信誉:131 :
不行。

回  chanceqw() ( ) 信誉:100 :
之前已经试过,不行。

#5


我在struts里面就是直接读SQL server 2000里的中文
不需要任何转换

#6


这篇文章也许对你有帮助
http://www.mhdn.net/p/2002-08-02/5603.html

#7



http://expert.csdn.net/Expert/topic/2231/2231845.xml?temp=.1760675

方法很多的!

#8


清回答问题的大哥们先看清我已使用过的方法,以上你们所建议的方法我在提问时已经注明试过了。

#9


将<%@ page contentType="text/html; charSet=gb2312"%>这一句去掉试试。

#10


经常看见问中文问题的,为什么不使用utf-8编码呢?所有的中文问题都迎刃而解。何必那么麻烦呢?况且,utf-8不但支持简体中文,还支持繁体中文,日文,韩文
!!!!!!!!!!!!!!!!推荐使用utf-8编码!!!!!!!

#11


<%@ page contentType="text/html; charSet=gb2312"%>
这一句有与没有 客户端都默认采用unicode编码格式,而且不能更改为“简体中文”编码。

如果使用utf-8编码格式是不是只要在头加上
<%@ page contentType="text/html; charSet=utf-8"%>
这一句就可以了?我也试过了,还是乱码。
可是我奇怪的是如果使用 System.out.println(rs.getString("fx")); 方法却可以在tomcat控制台中正确打印出“借”或“还”,说明在向数据库读取该字段时没有错误,可为什么就是在html页面总显示乱码呢!

#12


没人会了?
斑竹呢?出来帮帮忙呀。

#13


你定义一个METHOD
加个方法:
<%!public getStr(String str) throws Exception
  {   try{ 
    String temp=str;
    byte[] temp_p=temp.getBytes("ISO-8859-1");
    return new String(temp_p,"GBK");;
   }catch(Exception e)
   {
   }
%>
然后在插入数据库之前将有中文的变量用这个方法将变量转换一下:
String text=null;
if(request.getParameter("text")!=null&&request.getParameter("text")!="")
{
   text=getStr(request.getParameter("text"));
 }

#14


请说明一下你的out.println()的out是什么类型