java通过JDBC读取BLOB类型的数据(是一些中文字符)但是读取时不能完全显示所有中文,中文中不能显示都是?号
我用的哦mysql是版本 5.0.27 字符集设置是GBK 但是存储参数查看时我看了是UTF-8的字符集,直接从MYSQL中读取数据时为html格式是中文 能够完全显示:
这是数据库直接导出的结果:
<p><font face="Arial"> 这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></font></font></font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></font></font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></p> 但是用JDBC从数据库里读出的是:
<p><font face="Arial"> 这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></font></font></font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></font></font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></p>我用的数据库驱动是:mysql-connector-java-5.0.6-bin.jar
在读取我把数据进行转化:
String sBlob = "";
InputStream in = this.rs.getBinaryStream(colName);
byte[] buffer = new byte[1024];
int len = 0;
while ( (len = in.read(buffer)) != -1)
{
sBlob += new String(buffer, 0, len);
}
in.close();
System.out.println("SQL****:"+new String(sBlob.getBytes("GBK"),"UTF-8"));
return new String(sBlob.trim().getBytes("GBK"),"UTF-8");如果不转化基本是乱码
我用的哦mysql是版本 5.0.27 字符集设置是GBK 但是存储参数查看时我看了是UTF-8的字符集,直接从MYSQL中读取数据时为html格式是中文 能够完全显示:
这是数据库直接导出的结果:
<p><font face="Arial"> 这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></font></font></font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></font></font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告</font></p> <p><font face="Arial">这是一个很长很长的公告<font face="Arial">这是一个很长很长的公告</font></font></p> 但是用JDBC从数据库里读出的是:
<p><font face="Arial"> 这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></font></font></font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></font></font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??/font></p>
<p><font face="Arial">这是????很长很长的公??font face="Arial">这是????很长很长的公??/font></font></p>我用的数据库驱动是:mysql-connector-java-5.0.6-bin.jar
在读取我把数据进行转化:
String sBlob = "";
InputStream in = this.rs.getBinaryStream(colName);
byte[] buffer = new byte[1024];
int len = 0;
while ( (len = in.read(buffer)) != -1)
{
sBlob += new String(buffer, 0, len);
}
in.close();
System.out.println("SQL****:"+new String(sBlob.getBytes("GBK"),"UTF-8"));
return new String(sBlob.trim().getBytes("GBK"),"UTF-8");如果不转化基本是乱码
解决方案 »
- MappedByteBuffer这个要怎样读文件?
- hibernate Date Exception
- xfire接口抛出的自定义异常总是会被xfire打印输出????、
- Jdom修改xml的问题
- Java获取视频时间
- 本人找 J2EE 的工作-三年JAVA项目经验
- 大家帮我看看这个struts数据添加程序!
- 在JBuilder中怎么配置Hibernate和Struts?有没有方便的工具?
- 大家讨论一下:1.Jbuilder与WSAD哪个比较好用?他们的优缺点?2.WebSphere和WEBLogic哪个比较好用?他们的优缺点?
- CSDN源码加密了?
- servlet 包配置问题
- 求一个java的微博源码~
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1MySQL数据库默认的字符集是latin1,是瑞典的文字字符集,难怪有中文乱码的问题解决方式步骤1:
在my.ini中[mysql]后追加内容default-character-set= gbk完成后 中文乱码的问题依然存在
命令行下登入mysql 输入\s再看一下注意到如下内容Server characterset: latin1
Db characterset: latin1
Client characterset: gbk
Conn characterset: gbk发现Client characterset、Conn. Characterset已经由latin1改变为gbk但是Server characterset、Db characterset依然是latin1这个显然就是乱码产生的原因继续步骤2:在my.ini中[mysqld]后追加内容default-character-set= gbk命令行下登入mysql 输入\s再看一下
注意到Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn characterset: gbk全部都为gbk编码了但还是会出现乱码,这就是我们在建立表的时候,它默认的字符也可能是latin1,如果是latin1的话,
或者不是gbk的话,都有可能是出现字符乱码的,所以,在我们建立好一个表之后,我们应该要进行转换一下表的字符。
命令为Alter TABLE [表名] CONVERT TO CHARACTER SET GBK;
这样子就不会出现乱码这个问题了。
杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????/font>杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font>
好像还是不行 如果单纯是文字没有html标签的话可以,但是有了html标签后 就不行:
杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????/font> 杩??涓?釜寰??寰???????font face="Arial">杩??涓?釜寰??寰???????/font>