Java が Oracle を読み取って中国語の文字化けが発生した場合は、トランスコードする必要があります。 (推奨: java ビデオ チュートリアル )
トランスコーディング方法:
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 の 2 つのプロパティが含まれています。 Javaがデータを読み込んだ後、serverEncodingとclientEncodingが異なることが判明した場合、以下のエンコード変換が自動的に行われます。
new String(s.getByte(serverEncoding), clientEncoding)
Java の知識をさらに深めたい場合は、java 基本チュートリアル 列に注目してください。
以上がJava が Oracle の文字化けコードを読み取る問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。