java.nio.charset.MalformedInputException 阅读流程时

我使用以下代码读取数据。 他抛出 java.nio.charset.MalformedInputException.
我可以正常打开但它不包括的文件 ascii 象征。 无论如何,我可以解决这个问题吗?


Source.fromInputStream/stream/.getLines foreach { line =>
// store items on the fly
lineParser/line.trim/ match {
case None => // no-op
case Some/pair/ => // some-op
}
}
stream.close//


流量施工代码在这里:


def getStream/path: String/ = {
if /!fileExists/path// {
None
} else {
val fileURL = new URL/path/
val urlConnection = fileURL.openConnection
Some/urlConnection.getInputStream///
}
}
已邀请:

郭文康

赞同来自:

尝试
Source.fromInputStream/stream//io.Codec/"UTF-8"//

或者您需要的任何其他编码。

裸奔

赞同来自:

让劳伦特可能完全正确 Stream.fromInputStream 使用与您的编码不匹配 stream—likely 默认情况下,即 ISO8859-1 在 Windows, UTF-8 在最后的经销商 Linux, IIUC MacRoman 在 Mac... 由于您收到了排除编码,因此他可能是默认 UTF-8—since 这很艰难 scheme—and 该文件是其他一些编码 /大概 ISO8859-1/.

一般来说,没有办法

先验

假设使用哪种符号编码来生成一些 bitstream—you 或者一些人 out-of-band 转移机制。 什么时候 HTTP 回复你经常可以从标题中得到它
Content-Type

, 但各种Web应用程序有时会破坏错误。 如果文件很重要 XML, 通常,您需要在顶部的处理指令中指定编码。 一些文件格式设置了单个标准编码...实际上它在整个地图中。

最好,在没有任何整合要求的情况下,使用 UTF-8 显然无处不在,不依赖于默认的平台编码。

要回复问题请先登录注册