Heim > Java > javaLernprogramm > Hauptteil

Wie man mit verstümmelten chinesischen Schriftzeichen in Java Oracle umgeht

coldplay.xixi
Freigeben: 2020-08-17 13:49:25
Original
2674 Leute haben es durchsucht

Lösung für den verstümmelten Code von Java Oracle: 1. Transkodieren Sie die gelesenen Strings manuell, der Code lautet [new String(s.getByte(A), B)] 2. Verwenden Sie druid Eine einheitliche Kapselungs- und Codierungsebene Für verschiedene Datenbanktreiber wurde eine Konvertierung durchgeführt.

Wie man mit verstümmelten chinesischen Schriftzeichen in Java Oracle umgeht

[Verwandte Lernempfehlungen: Java-Grundlagen-Tutorial]

Lösung für verstümmelten Java-Oracle-Chinesischcode:

Transkodierungsmethode

Wenn Java beim Lesen von Oracle auf chinesische verstümmelte Zeichen stößt, müssen wir eine Transkodierung durchführen. Es gibt viele Transkodierungsmethoden. Die folgenden sind mir aufgefallen.

1. Rein manuelle Transkodierung

Transkodieren Sie die gelesenen Strings, wie zum Beispiel: new String(s.getByte(A), B)

2 ist ein von Alibaba selbst entwickelter Treiber. Er bietet tatsächlich ein einheitliches Paket für verschiedene Datenbanktreiber und fügt Funktionen wie Protokollierung, Alarme und Codekonvertierung hinzu. Die Konfigurationsmethode lautet wie folgt:

<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>
Nach dem Login kopieren

Die ConnectionProperties enthalten zwei Eigenschaften: serverEncoding und clientEncoding. Nachdem Java die Daten gelesen hat und festgestellt wird, dass serverEncoding und clientEncoding unterschiedlich sind, wird die folgende Codierungskonvertierung automatisch durchgeführt.

new String(s.getByte(serverEncoding), clientEncoding)
Nach dem Login kopieren

3. Weblade-Ibatis-Rückruf

Es verwendet die folgende Methode, um einen Ibatis-Rückruf zu registrieren.

<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>
Nach dem Login kopieren

bewirkt, dass das Programm den von ibatis erhaltenen String standardmäßig wie folgt konvertiert:

new String(s.getByte(“ISO-8859-1”), “GBK”)
Nach dem Login kopieren

Die Bibliothek eines Drittanbieters wird wie folgt eingeführt:

<dependency>
<groupId>com.alibaba.asc.shared</groupId>
<artifactId>weblade.core.ibatisext</artifactId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
Nach dem Login kopieren

Ibatis-Rückruf ist ausgeblendet Der Prozess der Codierung Das Problem besteht jedoch darin, dass sie sich auf alle Datenquellen im Projekt auswirkt. Dies macht es unmöglich, Datenquellen, die eine Transkodierung erfordern, und solche, die keine Transkodierung erfordern, gleichzeitig transparent zu unterstützen.

Verwandte Empfehlungen: Programmiervideokurs

Das obige ist der detaillierte Inhalt vonWie man mit verstümmelten chinesischen Schriftzeichen in Java Oracle umgeht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage