如何让 sql 开发者正确显示非英文字符而不是显示方块?

how to make sql developer display non-English character correctly instread of displaying squares?

在sql 开发者--偏好

环境--编码已设置为'UTF-8'

代码编辑器--字体设置为 'Verdana'

数据库--NLS--语言设置为'American'

db中的数据是Java以UTF-8编码写入的(95%确定)

我还需要做什么才能使其正确显示?

注意:方块字实际上是汉字。

问题解决了。使用字体 'Microsoft YaHei'

sqldeveloper 使用主机的系统字体。 在我的 Win8 系统上,有一种字体具有很多 unicode 字符的字形,因此适用于许多 unicode 字符。

'Arial Unicode MS'

Select这个字体来自工具-首选项-代码编辑器-字体

这个字符串 ( '照 عَروبِيّ ㅌ ㅍ ㅎ 1 ☺ 灯' ) 广泛变化的字符与 'Arial Unicode MS' 一起使用,它们在编辑器 window 中正确显示并且输出 window, 因此

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 上的 'courier new' 有大量的字形,但 Win8 / sqldeveloper 'courier new' 不支持阿拉伯语、中文等

所以,也许要记住的是,许多字体都被剥离了您可能合理期望的子集。这不是你的错,是字体的问题 - 几乎所有字体的字符范围都有限。

所以使用'Arial Unicode MS'。