文件开头没有 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,假脱机文件中的所有内容都应该没问题。
我将数据从 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,假脱机文件中的所有内容都应该没问题。