背景介绍:
开发环境:jdk1.5+tomcat5.5+xp sp2+Access2007+jbuilder2007
遇到问题:在读取Access2007数据库表中的某个字段时(该字段存储内容为维吾尔文字),不能正常显示维文!
在数据库表中是正常显示的,该维文是在建立Access表的时候直接输入进去的,不是通过程序来实现此输入功能。现在想取出它的内容显示在jsp页面上,但是试了好多方法都不能正常显示,请高手指点!jsp页面部分代码如下:
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page language="java" import = "java.sql.*" %>
<%@ page language="java" import = "java.io.*" %>
<%//连接Access数据库
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url="jdbc:odbc:UMR";
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="select * from Base_Info where ";
String medicinalName=request.getParameter("mName");
//进行中文转换
byte[] tmpbyte = medicinalName.getBytes("ISO-8859-1");
String medicinalName1 = new String(tmpbyte);sql=sql+"M_Name_Ch='"+medicinalName1.trim()+"'";
ResultSet rs = stmt.executeQuery(sql);%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000">
<%
String mNumber;
String mName;
String pm;if(rs.next())
{
//维文的显示处理ئەنجۈر
//试过如下几种方法:字段Name_Ui存储维文
//方法一:
InputStream in=rs.getBinaryStream("Name_Ui");
String mU=in.toString();//读取内容显示sun.jdbc.odbc.JdbcOdbcInputStream@4bf53e
//方法二:
InputStream in=rs.getBinaryStream("Name_Ui");
byte b[]=new byte[0x7a120];
in.read(b);
String mUigurName1 = new String(b,"UTF-8");//显示若干个问号
in.close();
//方法三:
Reader in=rs.getCharacterStream("Name_Ui");
BufferedReader mUigurName=new BufferedReader(in);
String mU=mUigurName.readLine();//显示不正确
mUigurName.close();
//方法四:
String mUigurName=rs.getString("Name_Ui");//读取该字符串mUigurName,显示不正确
//方法五:
byte[] tmpbyte1 = rs.getBytes("Name_Ui");
String mUigurName1 = new String(tmpbyte1,"UTF-8");//显示不正确
//方法六:
String mUigurName=rs.getString("Name_Ui");
byte[] str=mUigurName.getBytes("UTF-8");
String mUigurName1 = new String(str,"UTF-8");
%>以上方法中,凡是涉及编码转换的我都试过iso-8859-1,gbk,gb2312,utf-8,utf-16等,都不能正常显示,但是其它的中文字段内容都能正常显示,请高手指点!不甚感激!
开发环境:jdk1.5+tomcat5.5+xp sp2+Access2007+jbuilder2007
遇到问题:在读取Access2007数据库表中的某个字段时(该字段存储内容为维吾尔文字),不能正常显示维文!
在数据库表中是正常显示的,该维文是在建立Access表的时候直接输入进去的,不是通过程序来实现此输入功能。现在想取出它的内容显示在jsp页面上,但是试了好多方法都不能正常显示,请高手指点!jsp页面部分代码如下:
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page language="java" import = "java.sql.*" %>
<%@ page language="java" import = "java.io.*" %>
<%//连接Access数据库
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url="jdbc:odbc:UMR";
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="select * from Base_Info where ";
String medicinalName=request.getParameter("mName");
//进行中文转换
byte[] tmpbyte = medicinalName.getBytes("ISO-8859-1");
String medicinalName1 = new String(tmpbyte);sql=sql+"M_Name_Ch='"+medicinalName1.trim()+"'";
ResultSet rs = stmt.executeQuery(sql);%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000">
<%
String mNumber;
String mName;
String pm;if(rs.next())
{
//维文的显示处理ئەنجۈر
//试过如下几种方法:字段Name_Ui存储维文
//方法一:
InputStream in=rs.getBinaryStream("Name_Ui");
String mU=in.toString();//读取内容显示sun.jdbc.odbc.JdbcOdbcInputStream@4bf53e
//方法二:
InputStream in=rs.getBinaryStream("Name_Ui");
byte b[]=new byte[0x7a120];
in.read(b);
String mUigurName1 = new String(b,"UTF-8");//显示若干个问号
in.close();
//方法三:
Reader in=rs.getCharacterStream("Name_Ui");
BufferedReader mUigurName=new BufferedReader(in);
String mU=mUigurName.readLine();//显示不正确
mUigurName.close();
//方法四:
String mUigurName=rs.getString("Name_Ui");//读取该字符串mUigurName,显示不正确
//方法五:
byte[] tmpbyte1 = rs.getBytes("Name_Ui");
String mUigurName1 = new String(tmpbyte1,"UTF-8");//显示不正确
//方法六:
String mUigurName=rs.getString("Name_Ui");
byte[] str=mUigurName.getBytes("UTF-8");
String mUigurName1 = new String(str,"UTF-8");
%>以上方法中,凡是涉及编码转换的我都试过iso-8859-1,gbk,gb2312,utf-8,utf-16等,都不能正常显示,但是其它的中文字段内容都能正常显示,请高手指点!不甚感激!
解决方案 »
- JavaWeb应用中,static变量的值是一直存在的吗?
- iReport-1.2.2+jasperreports-1.2.2生成的Html报表在IE中不能显示
- 关于在tomact5.0中开发jsp标签的问题?
- <<JSP 2.0 技术手册>>电子文本在哪里下载啊?
- 一个案例实际问题,请高手指点。
- sql语句当中条件包含中文的奇怪问题
- jsp 调用servlet的问题? 急,急,急!!!!
- 严重: Exception starting filter struts2 java.lang.NoClassDefFoundError: org/apache
- 取完数据显示的问题,各位帮帮哦!
- 求一份用java写的系统,用作毕业设计,不要网上下载的,最好有点难度的,谢谢大家了
- [200分]如何能把jsp页面textarea输入框中输入内容的回车和段前的空格[排版]在提交后都保存到数据库[急等]
- jsp页面传值给servlet,tomcat 5.5自动关闭,何故?
String mUigurName1 = new String(mUigurName.getBytes(),"ISO8859_1");