当前位置: 技术问答>java相关
帮我解决一个java中文问题
来源: 互联网 发布时间:2015-04-01
本文导语: 我的运行环境是,ms Sql server 2000 tomcat4.1,ie5,jdk1.3,运行 JSP时可以显示中文,运行applet是不能显示中文,用 Stirng strOut = new String(strIn,"ISO8859_1"); 或 Stirng strOut = new String(strIn,"GBK"); 或 Stirng strOut = new String(strIn,"G...
我的运行环境是,ms Sql server 2000 tomcat4.1,ie5,jdk1.3,运行
JSP时可以显示中文,运行applet是不能显示中文,用
Stirng strOut = new String(strIn,"ISO8859_1");
或
Stirng strOut = new String(strIn,"GBK");
或
Stirng strOut = new String(strIn,"GB2312");
都试过,都不灵。
|
you must decode first.
use:
byte[] in = strIn.getBytes("8859_1"); //8859_1 maybe others encode methods
then ,use the byte array to combine the new String
strOut = new String(in,"GB_2312");
you can try it.
use:
byte[] in = strIn.getBytes("8859_1"); //8859_1 maybe others encode methods
then ,use the byte array to combine the new String
strOut = new String(in,"GB_2312");
you can try it.
|
这些问题和数据库语言设置,jdbc驱动是否自动转换,连接是否加字符集参数有关
以下是我用inet tds的jdbc驱动是试过,没有问题。
获取Connect连接的URL没有加chartset=gb2312的话:
try{
Stirng strOut = new String(strIn.getBytes(“ISO-8859-1"));
} catch)Exception ex){
ex.printStackTrace();
}
加了的话,就什么都不用做.
以下是我用inet tds的jdbc驱动是试过,没有问题。
获取Connect连接的URL没有加chartset=gb2312的话:
try{
Stirng strOut = new String(strIn.getBytes(“ISO-8859-1"));
} catch)Exception ex){
ex.printStackTrace();
}
加了的话,就什么都不用做.
|
weida:你在SQL Server里面存储中文的字段的类型是什么?应该用nvarchar、ntext一类的,不要用varchar、text。
我做的Applet-Servlet-SQL Server工作得很正常。
你去http://www.emapgo.com/main.html看看就知道了,界面上的四个Applet全部通过Servlet从数据库读取数据,包括文字和图像。:p(有打广告之嫌)
我做的Applet-Servlet-SQL Server工作得很正常。
你去http://www.emapgo.com/main.html看看就知道了,界面上的四个Applet全部通过Servlet从数据库读取数据,包括文字和图像。:p(有打广告之嫌)
|
import sun.io.*;
public static String AsciiToChineseString(String s) {
char[] orig = s.toCharArray();
byte[] dest = new byte[orig.length];
for (int i=0;i
public static String AsciiToChineseString(String s) {
char[] orig = s.toCharArray();
byte[] dest = new byte[orig.length];
for (int i=0;i