我需要将从某些API获取的字符串转换为其他API使用的InputStream。唯一的方法是在不知道确切编码的情况下将字符串转换为流。所以我假设它是 UTF-8 并且目前工作正常。但是,我想知道什么是更好的解决方案,因为我无法识别字符串源的编码。
最佳答案
对于不知道编码的问题,目前还没有好的解决方案。
因此,您必须要求显式指定编码,或者使用严格遵守的单一商定编码。
此外,请确保使用 InputStreamReader 构造函数的罕见形式,该构造函数会在编码错误时屈尊引发异常。那就是InputStreamReader(InputStream in, CharsetDecoder dec)
。根据您的观点或目的,其他三个要么已损坏,要么设计不当,因为它们会抑制编码错误并使您的程序不可靠且不可移植。
要非常小心遗漏错误,尤其是当您不确定自己得到什么时 - 即使您认为自己知道:)。
关于java - 对于字符串到流的转换,默认编码为 UTF-8 可能会产生什么后果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5651040/