(免责声明:我在询问之前看了这里的一些帖子,我发现
this one
特别有帮助的是,我只是想从你们那里得到一点理智的检查,如果可能的话)
大家好,
我有一个内置Java产品,用于处理加载到数据库中的数据文件(又名ETL工具)。我已经为xslt转换预先准备了阶段,并在原始文件中执行模式替换之类的操作。输入文件可以是任何格式,它们可以是平面数据文件或XML数据文件,您可以配置加载特定数据源所需的阶段。
到目前为止,我忽略了文件编码的问题(我知道这是个错误),因为一切都很好(基本上)。然而,我现在要面对文件编码问题,为了长时间的短故事,因为阶段的性质可以被配置在一起,我需要检测输入文件的文件编码,并用适当的参数创建一个Java读取器对象。我只是想和你们做一个快速的精神检查,在我陷入一些我不能完全理解的事情之前:
对工具箱中每个阶段输出的所有文件采用标准的utf-16文件编码(我不排除将来加载双字节字符的可能性)
使用ApacheCommonsIO库为所有阶段创建一个标准的读写器(我是否认为这没有类似的编码嗅探API?)
你认为我的方法有什么不足之处吗?
有没有任何方法可以让我相信,通过使用我现有的方法让Java运行时决定Windows 1252的编码来加载任何数据的向后兼容性?
提前谢谢你,
-杰姆斯