oracle数据库向来是一个麻烦的数据库,要不它的DBA怎么就那么值钱呢,呵呵。
中文的乱码问题也是一个比较头疼的问题,在odbc的连接中,可以通过设置客户端的字符集(修改注册表)来解决中
文问题。而通过jdbc
的thin方式来连接数据库,就没那么容易了。如果数据库使用的是非中文字符集,往往在处理中
文问题的时候就很头疼。之所以头疼,是因为oracle的驱动没有提供字符集的设置参数,所以在实际使用过程中,程
序系统和数据库系统中字符集不一致的时候,就会带来乱码问题。
通常的做法有两种:
第一种是在程序中,针对中文字符做显式的字符集转换。这种方式是颇不得已而为之的方法,相信大家遇到过很多次
了。
第二种是hack
oracle的驱动程序,在底层直接解决,通过给url加字符集参数,然后在驱动底层进行解析,在涉及
String类型操作的地方,在源字符集和目的字符集做相应转换。这中做法,虽然一劳永逸,但是需要比较深的功力。
另外,反编译别人的代码再做修改,也许不太好吧。不过话又说回来,oracle无情,也不要别怪人无义,^_^。mysql
、sybase、sql
server的驱动都提供了字符集的设置参数,为什么单单oracle没有呢?
所以,对一、二两种办法做个折中,应该是比较好的方案。具体的办法可以如下:
针对oracle驱动调用,做一个代理,需要对ResultSet、Statement、PreparedStatement等接口,在有字符串操作方法的地方,对字符集进行转换。另外,sql中有中文字符,也是需要处理的。
这样,既不要每次都写程序转换,解决一劳永逸的问题,还不影响原有的oracle驱动程序。
第二种已经实现,如果有需要的tx,请留下mail。
分享到:
相关推荐
综上所述,解决Java中文乱码问题的关键在于确保整个程序的编码一致性,包括源代码、编译器、运行环境、文件读写、网络传输以及数据库操作等环节。通过细心配置和适当地指定编码,我们可以有效地避免乱码问题,确保...
总结来说,解决Java中的WE8DEC字符集乱码问题涉及多个层面,从文件读写、数据库交互到Web请求和数据交换,都需要正确设置和处理字符编码。理解这些环节并应用适当的编码策略,是确保程序正确处理各种字符集的关键。
"oracle中文乱码.doc"可能包含了更详细的步骤和案例分析,包括如何查询数据库字符集、修改数据库字符集、调整JDBC连接配置等。而"www.pudn.com.txt"可能是从论坛或其他资源网站收集的相关技术讨论或解决方案。 总的...
本文将详细讨论如何解决Ibatis中的乱码问题,特别是涉及到GBK和ISO_8859_1编码格式时的解决方案。 首先,我们需要了解乱码产生的原因。乱码通常是因为字符编码不一致导致的。在Java和数据库之间进行数据交互时,...
在Java 1.4时代,Oracle数据库的某些特定字符集可能无法被标准的JDBC驱动完全支持,这可能导致在执行SQL语句、读写数据时出现乱码或错误。在这种情况下,"classes14.jar"就发挥了关键作用。它提供了对更多Oracle特定...
3. 数据库操作的乱码:与数据库交互时,如MySQL或Oracle,需要确保数据库连接的字符集设置与Java应用程序保持一致。这通常在数据库连接URL、JDBC驱动配置或数据库服务器配置中完成。 4. 字符串编码与解码:使用`...
Java采用Unicode字符集,它包含了几乎所有的汉字,保证了对中文字符的支持。但在实际应用中,不同的系统、文件或网络传输可能使用不同的字符编码,如GBK、GB2312、UTF-8等,这就可能导致中文乱码问题。 二、输入...
连接MySQL时,可以在连接字符串中设置`useUnicode=true&characterEncoding=gb2312`来指定字符集。 总的来说,Java中的字符编码转换涉及多个层次,包括JVM设置、编译过程、文件读写、XML处理、字符串操作以及数据库...
对于MySQL,连接字符串可以设置`useUnicode=true&characterEncoding=gb2312`来指定字符集。 总之,Java字符编码转换是一个复杂且需要细心处理的问题,开发者需充分理解各种编码方式和Java的相关API,以确保数据的...
5. **JDBC与数据库**:当与数据库交互,特别是中文数据时,确保数据库连接URL、SQL语句以及数据库表的编码设置与Java程序一致。 6. **正则表达式**:在使用正则表达式处理中文字符时,需使用`\u`转义序列,如`...
在创建数据库表时,设置正确的字符集(如`CHARACTER SET utf8`)和校对集(如`COLLATE utf8_general_ci`)至关重要,它们决定了数据库如何存储和比较文本数据。 Java作为跨平台的编程语言,内置了对UTF-8的支持。...
4. **数据库连接配置**:如果涉及到数据库操作,确保数据库连接URL中包含字符集参数,例如`jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8`。 除了上述方法,还需要注意WebLogic服务器...
每个实例都是经过笔者精心筛选的,具有很强的实用性,其中一些实例是开发人员难于寻觅的解决方案。 本书两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;本书实例来源...
为解决乱码问题,开发者需要确保在IDE、数据库、文件读写以及网络通信等环节统一使用正确的字符集,例如UTF-8。 7. **Eclipse配置与优化**: - **Eclipse Problem选项**: 这是指Eclipse的错误和警告提示设置,可以...
- **5.8.1 连接Oracle数据库**:使用特定于Oracle的JDBC驱动来连接Oracle数据库。 - **5.8.2 连接MySql数据库**:使用MySQL的JDBC驱动来连接MySQL数据库。 - **5.9 查询Excel电子表格** - 通过JDBC-ODBC桥接器...
- **3.1.2 处理汉字信息**:解决中文乱码问题,通常需要设置正确的编码。 - **3.1.3 常用方法举例**:例如使用`getHeader()`获取HTTP头部信息。 - **3.1.4 用户注册**:通过`request`对象收集用户的注册信息。 -...