我正在尝试在 oracle 11g 中使用 UTL_FILE 导入文件,有一种方法可以知道文件的字符编码是什么?
我要做的是在文件的字符集与 UTF-8 不同时返回错误,以避免插入错误。
我正在尝试在 oracle 11g 中使用 UTL_FILE 导入文件,有一种方法可以知道文件的字符编码是什么?
我要做的是在文件的字符集与 UTF-8 不同时返回错误,以避免插入错误。
可能不会(至少不容易)。
如果您真的很幸运,该文件将以字节顺序标记开头,使您可以确定该文件是 UTF-8 编码并具有合理的置信度。但这是文件的一个完全可选的属性(在读取文件中的真实数据之前,您的代码必须丢弃该属性)。
除此之外,您还进入了检查数据并尝试确定最可能的字符集的领域。一般来说,这很难,特别是如果您有一个主要是英文文件,其中文件的至少前几百或几千字节可能是有效的 7 位 ASCII 和 UTF-8。您可以阅读该文件并查看是否有任何无效的 UTF-8 代码点。这并不能明确地告诉您它是有效的 UTF-8,但它可能足够接近,就好像它是有效的一样。