顧客に関するデータをエクスポートするために、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 - プロダクション