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

时间:2016-11-11 10:32:13

标签: oracle utf-8 byte-order-mark spool

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

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

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

祝你好运 帕特里克

1 个答案:

答案 0 :(得分:1)

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

在这种情况下,SQL * Plus继承了cmd.exe的代码页。可以使用命令chcp查询,最有可能是CP850CP437

假脱机文件以此编码方式写入。虽然CP850或CP437在控制台中非常常见,但它们几乎不受任何应用程序或编辑的支持。

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

chcp 1252
set NLS_LANG=GERMAN_GERMANY.WE8MSWIN1252

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