1

顧客に関するデータをエクスポートするために、PL/SQL でエクスポートを構築しています。xml は一時テーブルに構築され、その時点まではすべてが正常に機能しているように見えます。

ただし、xmltype 列がファイルに書き込まれると、問題が発生します。

たとえば、「Böhomer」のような名前をファイルにエクスポートすると、いくつかのことが起こっていることがわかります。

Textpad で開くと問題なく表示され、ö の文字が表示されます

Oxygen などの XML エディタで開くと、Bhomer が表示されます

Javaで読むとB�hmerが見える

ファイルはこれらの 3 つの方法すべてで適切に読み取れるはずであり、ファイルのエンコーディングに何か問題があると思われます (正しいデータがファイルに含まれていますが、テキストパッドで表示できるため、文句を言うと思います)。私がこの種の XML を送信するときの顧客)

問題は、それを正しくする方法、または正しいエンコーディングが何であるかさえわからないことです。ファイルの書き込みは UTL_FILE によって行われます。

興味深いことに、テキストパッドでファイルを開き、明示的に UTF-8 エンコーディングを選択して保存すると、酸素 XML エディターと Java で読み取り可能になります。UTL_FILE.FOPEN_NCHAR プロシージャを使用して、PL/SQL コードを UTF-8 として保存しようとしましたが、ORA-29298: 文字セットの不一致のようなエラーしか表示されませんでした。

この問題を解決する方法はありますか?

データベースの文字セットは WE8MSWIN1252 です

使用中のバージョン: Oracle Database 11g Enterprise Edition リリース 11.2.0.2.0 - 64 ビット プロダクション PL/SQL リリース 11.2.0.2.0 - プロダクション CORE 11.2.0.2.0 プロダクション TNS for 64 ビット Windows: バージョン 11.2.0.2.0 -プロダクション NLSRTL バージョン 11.2.0.2.0 - プロダクション

4

1 に答える 1