JDBC 用的是 UniCode 编码,需要转换进行字符集的转换.
解决方案 »
- AIX 系统下JDK1.4环境 运行JAVA进程,log4j-1.2.8 版本出错,求解决
- 远程登录计算机
- 有没有知道显示JVM内存设置的JAVA命令.就是显示Xmx,-Xms 那几个参数是多少的命令.不是设置.是显示.查看哦.
- 五年的编程经验加上这本书就能写出一个JAVA虚拟机???
- 如何去除文件后缀名
- 我定义一个Timer 为什么会有这种错误啊???
- 如何写文件?
- 对象传递的时候,这两个有区别吗?
- 高分求CoreJava卷I中两程序的源代码!
- spring 手动注入后 自动装配失败
- 本机间java 和 c/c++怎么通讯?
- 我是一个初学java的虾米,我只有一些基础的C语言知识,我现在用的学习教程是Thinking for java ,但很多东西多不好理解,请问各位,我该用什么书才比较快入门呢,请推荐,谢谢.
但是如何做转化呢,我在网上找了一些办法都不可以的!
请问如何转换?
1:修改区域设置:在控制面版中选择区域设置,设为英语(美国)
然后重起。一切就都正常。
2:在编译servlet时加入代码选项。编译servlet使用
javac -encoding iso8859_1 myservlet.java
1:修改区域设置:在控制面版中选择区域设置,设为英语(美国)
然后重起。一切就都正常。
2:在编译servlet时加入代码选项。编译servlet使用
javac -encoding iso8859_1 myservlet.java
还有,我直接用java写的程序就不能读中文,如果在编译的时间加也是没有用的,
出来的还是??
我的程序如下:import java.sql.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
import java.util.*;class Employee
{
public static void main (String args [])
throws SQLException
{
Properties p = new Properties();
p.put("user","system");
p.put("password","manager");
// p.put("CHARSET","utf8");
p.put("CHARSET","GBK");
// Load the Oracle JDBC driver
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); // Connect to the database
// You can put a database name after the @ sign in the connection URL.
Connection conn =
DriverManager.getConnection ("jdbc:oracle:oci8:@sun", p);
// Create a Statement
Statement stmt = conn.createStatement ();
ResultSet rset = stmt.executeQuery ("select * from users");
// int oracleID= CharacterSet.ZHS16GBK_CHARSET;
// CharacterSet gb= CharacterSet.make(oracleID); // Iterate through the result and print the employee names
// oracle.sql.CHAR ss;
String ss1;
String ss;
while (rset.next ())
{
// ss=new oracle.sql.CHAR(rset.getString(2),gb);
ss=rset.getString(2);
try{
byte[] b=ss.getBytes();
ss1= new String(b,"GBK");
System.out.println(ss1);
}catch(Exception e){
// return(e.getMessage());
} }
// Close the RseultSet
rset.close(); // Close the Statement
stmt.close(); // Close the connection
conn.close();
}
public Employee() {}
}
我还看到一种方法,不过没试过。你可以试试。
在servlet源程序中加入代码变换语句。如
try{
out.println(new ( (new String("我爱死你了")).getBytes("GBK"),"ISO8859_1"))
}
catch( UnsupportedEncodingException e)
{
.......
}
//要在Linux上编译,JDK1.2,JSWDK1.0.1,
//时区 US-EASTimport java.lang.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;public class IsItWorking extends HttpServlet {public static final String TITLE = "我们来测试 okokokok!!!!";
private static Connection conn = null;String native2unicode(String s)
{
if(s==null || s.length()==0)
{
return null;
}byte [] buffer = new byte[s.length()];for(int i=0;i<s.length();i++)
{
buffer[i] = (byte)s.charAt(i);
}return new String(buffer);
}String unicode2native(String s)
{
if(s==null || s.length()==0)
{
return null;
}char [] buffer = new char[s.length() * 2];char c;
int j=0;
for(int i=0;i<s.length();i++)
{
if(s.charAt(i)>=0x100)
{
c = s.charAt(i);
byte [] buf = (""+c).getBytes();
buffer[j++] = (char)buf[0];
buffer[j++] = (char)buf[1];
}
else
{
buffer[j++] = s.charAt(i);
}
}return new String(buffer,0,j);
}public void service (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
ServletOutputStream out = response.getOutputStream();
try
{
Class.forName ("oracle.jdbc.driver.OracleDriver");
}
catch ( Exception e )
{
out.println("Could not establish connection.");
}out.println("Success Oracle Driver JJJJJJJJJJ<BR>\n");out.println(TITLE);byte [] by = TITLE.getBytes("GB2312");
String unicode = new String(by,"8859_1");out.println(unicode+"<BR>\n");try
{
try
{
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.6:1521:ORCL", "expert","expert");
}
catch(SQLException e)
{
out.println("Connect Error<BR>\n");
}out.println("conn successfully");Statement stmt = null;
try
{
stmt = conn.createStatement ();
}
catch(SQLException e)
{
out.println("STMT Error<BR>\n");
}ResultSet rset;
try
{
//rset = stmt.executeQuery ("select modulename from modmethodinter");
/*
//SQL 语句嵌入汉字处理方法。
String szSQL = "insert into test values('测试')";String szTemp;// = unicode2native(szSQL);byte [] b = szSQL.getBytes("8859_1");szTemp = new String(b,"GB2312");
*/String szSQL = "select name from test";
rset = stmt.executeQuery (szSQL);String szOut;
String szTemp;while(rset.next())
{
szTemp = rset.getString("name");
byte [] b = szTemp.getBytes("GB2312");
szOut = new String(b,"8859_1");
out.println(szOut+"<BR>\n");
}
rset.close();}
catch(SQLException e)
{
out.println("SQL Execute Error<BR>\n");
stmt.close();
conn.close();
return;
}stmt.close();
conn.close();out.println("SQL Execute Successfully<BR>\n");
}
catch(Exception e)
{
}/*
// set content type and other response header fields first
response.setContentType("text/html");ServletOutputStream out_put = response.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(out_put,"8859_1");try
{
// byte [] b = TITLE.getBytes("GB2312");
// String unicode = new String(b,"8859_1");
//NT out.println(unicode);
//Linux
ow.write(TITLE);
ow.close();
}
catch( UnsupportedEncodingException e)
{
out_put.println("Error!");
}
// write the data
//stockDb db = new stockDb();
*/
}
public void doGet ( HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{response.setContentType("text/html");
ServletOutputStream out = response.getOutputStream();out.println("Hello World");try
{
Class.forName ("oracle.jdbc.driver.OracleDriver");
}
catch ( Exception e )
{
out.println("Could not establish connection.");
}out.println("Success Oracle Driver<BR>\n");try
{
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.6:1521:ORCL", "expert","expert");out.println("conn successfully");Statement stmt = conn.createStatement ();// Select the ENAME column from the EMP table
ResultSet rset = stmt.executeQuery ("insert into test values('测试')");/*
while(rset.next())
{
out.println("TEST");//(rset.getBinaryStream(1));
}
*/
rset.close();
stmt.close();
conn.close();
}
catch(Exception e)
{
}}//doGet
}