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