文件开头没有 BOM 的 Oracle 假脱机 UTF-8

Oracle spool UTF-8 without BOM at beginning of file

我将数据从 Oracle 假脱机到一个 csv 文件。

当我在编辑器中打开 csv 时,所有标志都正确显示。 但在 Excel 或 Kofax 中,文件特殊字符(例如 ß 或 ö) 显示不正确。

是否可以选择 select 缺少的 BOM 字符 文件的开头?如果是,我应该怎么做? 如果没有,是否还有其他可能性?

此致 帕特里克

我假设您在 Windows 上使用 SQL*Plus 来假脱机数据。

在这种情况下 SQL*Plus 继承了 cmd.exe 的代码页。这可以用命令 chcp 询问并且很可能是 CP850 or CP437

假脱机文件以此编码写入。虽然 CP850 或 CP437 在控制台上很常见,但几乎没有任何应用程序或编辑器支持它们。

例如,将您的代码页更改为 Windows-1252。但是,您还必须告诉 Oracle(即 Oracle 驱动程序)您正在使用 Windows-1252,这是通过 NLS_LANG 环境值完成的:

chcp 1252
set NLS_LANG=GERMAN_GERMANY.WE8MSWIN1252

然后启动您的 SQL*Plus,假脱机文件中的所有内容都应该没问题。