1问题描述
最近有人问我问题,说在Java中以UTF-8编码读UTF-8编码的文件test.htm,存入oracle数据库后再读出,一切正常。在Java中UTF-8编码读UTF-8编码的文件test.htm,存入kingbase数据库后再读出,文件中出现乱码,不知为何。
2具体现象
具体现象如下:
Java中读UTF-8编码的文件test.htm,存入数据库后再读出,文件中出现乱码
原文件图如下:
3 存入数据库再读出后出现乱码如下:
注:前面两幅图中“合资公司双方出资比例的问题”前面的那个“・”变成了“ ”。
4 相关代码
下面是模拟这个过程的读写文件和写读数据库的java代码:
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestEoding {
public static void main(String[] args) throws Exception {
//create table and insert 1 recode
//oracle,kingbase