sQLDeveloper--preference
環境-エンコーディングはすでに「UTF-8」に設定されています
コードエディタ-フォントは「Verdana」に設定されました
データベース--NLS--言語が「アメリカ」に設定されました
DbのデータはJava UTF-8エンコーディングで書き込まれました(95%確実)
正しく表示するには、他に何をする必要がありますか?
注:四角の文字は実際には漢字です。
sqldeveloperは、ホストマシンのシステムフォントを使用します。私のWin8システムには、非常に多くのUnicode文字のグリフがあり、多くのUnicode文字で機能するフォントがあります。
「ArialUnicodeMS」
[ツール]-[設定]-[コードエディター]-[フォント]からこのフォントを選択します
この文字列( '照عَرَبِيّㅌㅍㅎ1☺灯')は、 'Arial Unicode MS'で機能するため、エディターウィンドウと出力ウィンドウに正しく表示されます。
select n'照 عَرَبِيّ ㅌ ㅍ ㅎ 1 ☺ 灯' from dual; -- if data NLS_CHARACTERSET is single byte (eg 8859, ascii ... )
select '照 عَرَبِيّ ㅌ ㅍ ㅎ 1 ☺ 灯' from dual; -- multibyte db characterset.
Sqldeveloperで利用可能な他の多くのフォントを確認しましたが、ほとんどのフォントには、Unicode文字の限られたサブセットのグリフしかありません。これは少し奇妙に思えます。たとえば、PuTTYの「couriernew」には膨大な範囲のグリフがありますが、Win8/sqldeveloperの「couriernew」はアラビア語や中国語などを処理しません。
したがって、おそらく覚えておくべきことは、多くのフォントが、合理的に期待できるもののサブセットを取り除いているということです。それはあなたのせいではなく、そのフォントです-それらのほとんどすべてが限られた範囲の文字を持っています。
したがって、「ArialUnicodeMS」を使用します。