(免责声明:我在询问之前查看了这里的一些帖子,我发现这个特别有帮助,如果可能的话,我只是在寻找你们的一些理智检查)
大家好,
我有一个内部 Java 产品,用于处理加载到数据库中的数据文件(又名 ETL 工具)。我为 XSLT 转换准备了阶段,并在原始文件中进行了模式替换等操作。输入文件可以是任何格式,它们可以是平面数据文件或 XML 数据文件,您可以配置加载特定数据馈送所需的阶段。
到目前为止,我一直忽略文件编码的问题(我知道这是一个错误),因为一切正常(主要)。但是,我现在遇到了文件编码问题,长话短说,由于阶段可以一起配置的方式的性质,我需要检测输入文件的文件编码并创建一个 Java Reader 对象适当的论据。在我深入研究我无法声称完全理解的事情之前,我只是想和你们一起做一个快速的理智检查:
- 对从我的工具包中每个阶段输出的所有文件采用 UTF-16 的标准文件编码(我不排除将来加载双字节字符)
- 使用JUniversalChardet或jchardet嗅探输入文件编码
- 使用 Apache Commons IO 库为所有阶段创建标准读取器和写入器(我是否认为这没有类似的编码嗅探 API?)
您在我概述的方法中看到任何陷阱/有任何额外的智慧吗?
有什么方法可以保证与使用我现有的让 Java 运行时决定 windows-1252 编码的方法加载的任何数据的向后兼容性?
提前致谢,
-詹姆士