所以我有一个像这样的二进制数据的字符串:
String lob = "ÿØÿà...";
我真的无法控制它,所以我必须接受它。所以我需要将其转换为 InputStream 而不更改它,如果我这样做的话:
getBytes()
它将使用默认编码,如何在不进行任何编码或修改的情况下执行此操作?
编辑:
我无法从源头上解决这个问题。我知道原始数据是从 HTML GET 加载的图像,但我不知道它在传输过程中是如何编码的。我现在只有一个很长的字符串,我需要将它转换回来并将其保存到数据库中。
最佳答案
不存在没有编码的转换这样的概念。您正在字符 和字节 之间进行转换 - 它们不是一回事,因此需要进行转换,而转换的形式恰恰是编码。任何声称在不使用编码的情况下进行转换的东西都只是假定了某种特定的编码,而不必知道他们正在这样做。
如果你想得到原始的二进制数据,你需要找出使用什么编码将字节转换成字符串开始。您可能发现 ISO-8859-1 可以工作,但您确实需要检查一下。
与此同时,您应该非常努力将其更改为使用 base64 之类的东西。像这样将任意二进制数据转换为文本并返回是一种灾难。
关于java - 无需编码将字符串转换为字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28179445/