0

我们有一个将 XML 存储为 CLOB (Oracle 10g) 的表。

这些 XML 通常包含一些特殊字符

e.g `FDEAÂ’s`

当我使用 SQLDeveloper 查询此记录并将 XML 在记事本中保存为 UTF8 编码时,会出现特殊字符。

但是当我尝试通过 JDBC 查询相同的内容时,我得到了?或这些字符为空白。

我尝试了以下链接中提到的多个选项(使用 CharacterSet 等),但找不到解决方案。

还在 Java 1.5 和 1.6 上检查了这一点,但问题仍然存在。

4

1 回答 1

1

我过去遇到过同样的问题。这里有一些提示:

1) 以编程方式设置 nls_lang 参数(如果尚未设置)。

Locale.setDefault(Locale.<your locale here>);

2)尝试在环境变量中将编码设置为UTF8(如果您在文件中输出结果)

java -Dfile.encoding=UTF-8 … com.x.Main

3)正如您提到的从 JDBC 中“选择”,请检查 eclipse 设置。

Window--> Workspace --> Text File encoding --> Other --> UTF8

4) SQL-Developer 足够聪明,可以显示各种特殊字符,但是像 notepad/textpad/notepad++ 这样的工具需要适当的设置才能开始显示特殊字符。

5) 检查您是否需要类路径中的 orai18.jar。需要这个 jar 来支持与 CLOB 和 oracle 类型等相关的。

于 2016-04-29T15:52:31.617 回答