java - 对于字符串到流的转换,默认编码为 UTF-8 可能会产生什么后果?

标签 java string unicode encoding inputstream

我需要将从某些API获取的字符串转换为其他API使用的InputStream。唯一的方法是在不知道确切编码的情况下将字符串转换为流。所以我假设它是 UTF-8 并且目前工作正常。但是,我想知道什么是更好的解决方案,因为我无法识别字符串源的编码。

最佳答案

对于不知道编码的问题,目前还没有好的解决方案。

因此,您必须要求显式指定编码,或者使用严格遵守的单一商定编码。

此外,请确保使用 InputStreamReader 构造函数的罕见形式,该构造函数会在编码错误时屈尊引发异常。那就是InputStreamReader(InputStream in, CharsetDecoder dec)。根据您的观点或目的,其他三个要么已损坏,要么设计不当,因为它们会抑制编码错误并使您的程序不可靠且不可移植。

非常小心遗漏错误,尤其是当您不确定自己得到什么时 - 即使您认为自己知道:)。

关于java - 对于字符串到流的转换,默认编码为 UTF-8 可能会产生什么后果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5651040/

相关文章:

java - 格式化日志文件中的 cpu 值

java - 自动引用 Android 布局组件

c# - 两个相同的字符串可以是 C# 中的两个独立实例吗?

java - 无法在 MySQL 中插入非拉丁符号

python - 汉字字符串查找算法

java - Hibernate 的 SQLite 方言错误

java - GUI 中的 TinySound 和多次单击(按钮)

c - 基于解析的整数代码检索字符串的最佳方法?

c# - 如何用另一个文件中的字符替换一个文件中的字符

c++ - (编码)C++ 中的字符串处理 - 问题/最佳实践?