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
// create table t_test (id int,txt clob);
// insert into t_test (id,txt) values(1,'');
//pg
// create table t_test (id int,txt text);
// insert into t_test (id,txt) values(1,'');
//kingbase
String driver = "com.kingbase.Driver";
String url = "jdbc:kingbase://127.0.0.1:54321/BEIGANG?ClientEncoding=UNICODE";
String usr = "BEIGANG";
String passwd = "beigang";
String fn = "E:/test.htm";
/*
//pg
String driver = "org.postgresql.Driver";
String url = "jdbc:postgresql://127.0.0.1:5432/beigang";
String usr = "beigang";
String passwd = "beigang";
String fn = "E:/test.htm";
*/
if (args.length > 0) {
fn = args[0];
}
String value = getValue(fn);
testDB(driver, url, usr, passwd, fn + ".kb", value);
/*
//sqlserver
driver = "net.sourceforge.jtds.jdbc.Driver";
url = "jdbc:jtds:sqlserver://127.0.0.1:1433/beigang";
usr = "beigang";
passwd = "beigang";
testDB2(driver, url, usr, passwd, fn + ".mssql", value);
driver = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@127.0.0.1:1521:beigang";
usr = "beigang";
passwd = "beigang";
testDB2(driver, url, usr, passwd, fn + ".oracle", value);
*/
}
protected static void testDB(String driver, String url, String usr,
String passwd, String fn, String value) throws SQLException,
Exception {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, usr, passwd);
String sql = "update t_test set txt = ? where id=1";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, value);
stmt.executeUpdate();
stmt.close();
sql = "select txt from t_test where id=1";
stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
writeFile(fn, rs.getString(1));
}
/*
* pg
String sql = "update t_test set txt = '" +value +"' where id=1";
ResultSet rs;
stmt.executeUpdate(sql);
sql = "select txt from t_test where id=1";
rs = stmt.executeQuery(sql);
if (rs.next()) {
writeFile(fn, rs.getString(1));
}
*/
}
protected static void testDB2(String driver, String url, String usr,
String passwd, String fn, String value) throws SQLException,
Exception {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, usr, passwd);
String sql = "update t_test set txt = ? where id=1";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, value);
stmt.executeUpdate();
stmt.close();
sql = "select txt from t_test where id=1";
stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
writeFile(fn, rs.getString(1));
}
}
private static void writeFile(String fn, String string) throws Exception {
FileOutputStream fos = new FileOutputStream(fn);
byte[] content = string.getBytes("UTF-8");
fos.write(content);
fos.flush();
fos.close();
}
private static String getValue(String fn) throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
FileInputStream fins = new FileInputStream(fn);
int b = -1;
while ((b = fins.read()) != -1) {
baos.write(b);
}
return baos.toString("UTF-8");
//return baos.toString("GBK");
}
}
相关推荐
此外,还应养成良好的编码习惯,如使用标准的字符集编码(如`UTF-8`),以及在处理特定数据时进行适当的编码转换。通过这些措施,可以大大降低乱码问题的发生概率,提高软件系统的稳定性和用户体验。
通过学习如何正确设置字符集和处理编码转换,可以确保数据的正确显示和存储。 最后,通过提供的各章节代码,你可以在实践中加深对每个主题的理解。从第二章到第七章,涵盖了从基础到进阶的各个部分,每章的代码示例...
6. 字符串处理:在处理字符串时,需要谨慎对待字符串的编码转换,如`new String(bytes, "GBK")`,确保正确的编码被使用。 7. 源码文件编码:确保所有源代码文件使用同一编码,推荐使用UTF-8,这样能避免因源码编码...
在`SupplyunittableUtil.java`类中,可能有静态方法处理这些情况,比如读取或写入文件时的预处理和后处理工作,或者数据库查询时的编码转换函数。此外,它可能还提供了处理特定场景下乱码问题的通用方法,以便在整个...
在C#编程中,与MySQL数据库交互时可能...总之,解决MySQL乱码问题的关键在于统一字符集设置和正确处理编码转换,而封装数据库操作则可以提高代码的复用性和模块化程度。希望这篇文章能帮助你更好地理解和处理这些问题。
6. **应用实例**: 在电子邮件、文本编辑器、数据库导入导出、网页开发等领域,编码转换都是必不可少的。例如,当从一个使用UTF-8编码的数据库导出数据到一个使用GBK编码的系统时,就需要使用编码转换器进行转换。 7...
总之,Java编程中的乱码问题需要开发者对字符编码有深入的理解,并且在各个层次——从文件读写到网络传输,从数据库到Web容器——都做好编码的适配和转换工作。只有这样,才能有效地避免和解决乱码问题,保证程序的...
7. **应用实例**:在开发跨平台软件或网站时,确保文件和数据库的编码一致性至关重要,避免因编码不匹配引发的显示问题。此外,对于处理旧版文档或从不同地区获取的数据时,编码转换工具也是必不可少的。 总的来说...
压缩包内的“编码转换大全”可能包含了各种编码转换的实例代码,包括不同编码间的转换方法、异常处理机制以及实际应用中的注意事项。学习这些源码可以帮助开发者深入理解字符编码的本质,提高处理编码问题的能力,...
在Java编程语言中,编码转换是一项重要的任务,特别是在处理不同来源的数据时,如读取文本文件、网络数据传输或数据库交互。本资源包含一个名为`CodeConvert.java`的源代码文件,它提供了对多种编码格式进行转换的...
1. 文件编码转换:使用Notepad++等工具将源代码文件转换为统一的编码格式,如UTF-8。 2. 程序编码处理:在读写文件时,通过new InputStreamReader(fileInputStream, "UTF-8")和new OutputStreamWriter...
4. **使用转换工具**:对于已存在的乱码文件,可以利用编码转换工具(如Notepad++等文本编辑器)将其转换成正确的编码格式。 5. **代码层面的检查与调整**: - 在输入输出时指定正确的编码方式。 - 对于数据库...
在Java编程语言中,中文字符级转换是一个关键的议题,特别是在处理中文文本和字符串时。这个主题涉及到如何正确地编码、解码以及操作中文字符,确保数据在不同环境下的兼容性和准确性。以下是一些关于“中文字符级...
在Java编程语言中,字符编码是一个非常重要的概念,特别是在处理文本数据时。字符编码决定了如何将字符转换为字节序列,以及如何从字节序列恢复字符。本篇将围绕"JAVA 转换字符编码工具"这个主题,深入探讨字符编码...
开发者需要确保代码中的字符串资源和 UI 控件都使用了正确的字符集,并且在处理文本输入和输出时考虑到编码转换。 "Delphi源码-数据库实例" 这个标签进一步强调了这是一个实际的代码示例,适用于学习如何在 Delphi ...
取错误文本()”返回的文本是UTF-8编码(应是GB18030编码)。 -------------------------------------------------------------------------------- 易语言5.0 相对于易语言4.x更新说明(2010/02/01): 增加...
当你参考示例代码时,特别是涉及到字符串转换和输出时,要特别关注编码问题。例如,在Servlet中读取上传文件名或处理其他用户输入时,确保正确地进行编码和解码。 6. **调试和测试** 在实际开发中,对每个步骤...
实例031 Zend Studio编码格式的转换 56 实例032 Zend Studio中快捷键的运用 57 实例033 Zend Studio中部署Apache服务器 60 第2章 PHP基础 63 2.1 基本语法 64 实例034 在页面中打印PHP的配置信息 64 实例035 在页面...