我的理解是 Java 默认使用 UTF-16(可能还有其他类型),String
并且char
UTF-16 是地球上大多数字符编码的主要超集(尽管我可能是错的)。但是我需要一种方法来保护我的应用程序,因为它正在读取使用 UTF-16 不支持的编码生成的文件(我不确定是否有很多,或者根本没有)。
所以我问:
- 在读取文件之前假设文件是 UTF-16 是否安全,或者为了最大限度地避免出现 NPE 或其他格式错误的输入异常,我是否应该使用 JUniversalCharDet 或 JCharDet 或 ICU4J 等字符编码检测器来首先检测编码?
- 然后,在写入文件时,我需要确保字符/字节没有进入内存中的对象(字符串,
OutputStream
等等),当写入字符串或文件时会产生垃圾文本/字符. 理想情况下,我想有一些方法来确保这个产生垃圾的角色在进入我正在编写的文件之前以某种方式被捕获。我该如何防范呢?
提前致谢。