当前位置: 技术问答>java相关
为什么显示出来的中文都是框框?
来源: 互联网 发布时间:2015-01-13
本文导语: 连接access以后,里面所有的中文都是一个框框。 如果println出来,显示正常。 如果setText到label上面,就不行。 有人说这是2000的问题(我的系统是2000professional) jdk1.4.0 我找到一个类,转换gbk和unicode的,用了以后,显...
连接access以后,里面所有的中文都是一个框框。
如果println出来,显示正常。
如果setText到label上面,就不行。
有人说这是2000的问题(我的系统是2000professional)
jdk1.4.0
我找到一个类,转换gbk和unicode的,用了以后,显示出来的不是框框了,
但是是乱码。
java的中文问题怎么这么难解决啊?
谢谢!!
如果println出来,显示正常。
如果setText到label上面,就不行。
有人说这是2000的问题(我的系统是2000professional)
jdk1.4.0
我找到一个类,转换gbk和unicode的,用了以后,显示出来的不是框框了,
但是是乱码。
java的中文问题怎么这么难解决啊?
谢谢!!
|
你取的是gb2312吗?,在java中你要转换为unicode码,如:
public static String changeFromGb(String sHTML)
{
if(sHTML==null)
{
return null;
}
StringBuffer svg=new StringBuffer();
try
{
StringBufferInputStream std=new StringBufferInputStreamsHTML);
BufferedReader bvb=new BufferedReader(new InputStreamReader(std,"GB2312"));
String tmp=null;
while((tmp=bvb.readLine())!=null)
{
svg.append(tmp);
}
std.close();
bvb.close();
}
catch(Exception eee){}
return svg.toString();
}
public static String changeFromGb(String sHTML)
{
if(sHTML==null)
{
return null;
}
StringBuffer svg=new StringBuffer();
try
{
StringBufferInputStream std=new StringBufferInputStreamsHTML);
BufferedReader bvb=new BufferedReader(new InputStreamReader(std,"GB2312"));
String tmp=null;
while((tmp=bvb.readLine())!=null)
{
svg.append(tmp);
}
std.close();
bvb.close();
}
catch(Exception eee){}
return svg.toString();
}
|
试试以下的办法:
public static String toChinese(String strvalue)
{
try
{
if(strvalue==null)
{
return null;
}
else
{
strvalue = new String(strvalue.getBytes("GBK"));
return strvalue;
}
}
catch(Exception e)
{
return null;
}
}
public static String unToChinese(String strvalue)
{
try
{
if(strvalue==null)
{
return null;
}
else
{
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
}
catch(Exception e)
{
return null;
}
}
放到库里之前转化一下,从库里出来的时候做一下反转化,试一下。
public static String toChinese(String strvalue)
{
try
{
if(strvalue==null)
{
return null;
}
else
{
strvalue = new String(strvalue.getBytes("GBK"));
return strvalue;
}
}
catch(Exception e)
{
return null;
}
}
public static String unToChinese(String strvalue)
{
try
{
if(strvalue==null)
{
return null;
}
else
{
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
}
catch(Exception e)
{
return null;
}
}
放到库里之前转化一下,从库里出来的时候做一下反转化,试一下。
|
呵呵,我想是字体的问题,给label换个字体试试看