Java oracle 중국어 왜곡 코드에 대한 솔루션: 1. 읽은 문자열을 수동으로 트랜스코딩합니다. 코드는 [new String(s.getByte(A), B)]입니다. 2. druid를 사용하여 이 데이터베이스 드라이버에는 통합 레이어가 있습니다. 캡슐화 및 인코딩 변환.
【관련 학습 권장사항: java 기본 튜토리얼】
java oracle 중국어 깨기 솔루션:
트랜스코딩 방법
Java가 Oracle을 읽고 중국어 깨기 코드를 발견하면 트랜스코딩이 필요합니다. 트랜스코딩 방법에는 여러 가지가 있는데, 제가 본 방법은 다음과 같습니다.
1. 순전히 수동 트랜스코딩
다음과 같이 읽은 문자열을 트랜스코딩합니다. new String(s.getByte(A), B)
2 Druid
Druid는 Alibaba 자체 드라이버에서 개발한 프로그램입니다. 다양한 데이터베이스 드라이버를 위한 통합 패키지로 로그, 알람, 코드 변환 등의 기능을 추가합니다. 구성 방법은 다음과 같습니다.
<bean id="opensqlDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.alibaba.china.jdbc.SimpleDriver" /> <property name="url" value="jdbc:oracle:thin:@10.20.130.210:1521:dwtest" /> <property name="username" value="etl" /> <property name="password" value="etl" /> <property name="connectionProperties"><value>serverEncoding=ISO-8859-1;clientEncoding=GBK;defaultRowPrefetch=50;bigStringTryClob=true</value></property> </bean>
여기서 ConnectionProperties에는 serverEncoding 및 clientEncoding이라는 두 가지 속성이 포함되어 있습니다. Java가 데이터를 읽은 후 serverEncoding과 clientEncoding이 다른 것으로 확인되면 다음 인코딩 변환이 자동으로 수행됩니다.
new String(s.getByte(serverEncoding), clientEncoding)
3. webblade ibatis 콜백
ibatis 콜백을 등록하는 방법은 다음과 같습니다.
<bean id="sqlMapExecutorDelegate" class="com.asc.alibaba.dao.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate"> <property name="mappedStatementStrategy" ref="mappedStatementStrategy" /> <property name="handlerList"> <list> <ref bean="stringHandler" /> <!-- <ref bean="objectHandler" />--> </list> </property> </bean> <bean id="stringHandler" class="com.asc.alibaba.dao.ibatis.handler.TypeHandlerAdapter"> <property name="javaType" value="java.lang.String" /> <property name="handlerCallback" ref="stringTypeHandlerCallback" /> </bean>
기본적으로 프로그램은 ibatis에서 얻은 문자열을 다음과 같이 변환합니다.
new String(s.getByte(“ISO-8859-1”), “GBK”)
두 번째 파티 라이브러리는 다음과 같이 도입됩니다.
<dependency> <groupId>com.alibaba.asc.shared</groupId> <artifactId>weblade.core.ibatisext</artifactId> <version>1.2.0-SNAPSHOT</version> </dependency>
Ibatis 콜백은 인코딩 변환 프로세스를 숨기지만 문제는 프로젝트의 모든 데이터 소스에 유효합니다. 이로 인해 트랜스코딩이 필요한 데이터 소스와 트랜스코딩이 필요하지 않은 데이터 소스를 동시에 투명하게 지원할 수 없습니다.
관련 추천: 프로그래밍 비디오 강좌
위 내용은 Java oracle에서 잘못된 한자를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!