当前位置: 首页 > 知识库问答 >
问题:

读取编码错误的文件。CP1252与UTF-8

颜黎昕
2023-03-14

我有字节数组,它放在InputStreamReader中,用它做一些操作。

Reader reader = new InputStreamReader(new ByteArrayInputStream(byteArr));

JVM有默认的cp1252编码,但是我转换成字节数组的文件有utf-8编码。此外,这个文件有德语umlauts。当我把字节数组放在InputStreamReader中时,java会将元音解码为错误的符号。例如,ürepression为。我试着把“utf-8”和charset.forname(“utf-8”).newdecoder())放在InputStreamReader构造函数中,通过新字符串(oldstr.getbytes(“cp1252”)和“utf-8)将字符串从reader转换到使用新编码的字符串;但没有帮助。在reader变量中的调试器中,我看到了StreamDecoder参数,它有”decoder“和ms1252$decoder值。也许它解决了我的问题,但我不明白如何修复它。

共有1个答案

海新霁
2023-03-14

尝试使用InputStreamReader(InputStream in,String charsetName)构造函数并自己设置charset。

Reader reader = new InputStreamReader(new ByteArrayInputStream(byteArr), "UTF-8");
 类似资料:
  • 我有一个编码问题。 我有数百万个文本文件需要为语言数据科学项目进行解析。每个文本文件都编码为UTF-8,但我刚刚发现其中一些源文件的编码不正确。 例如我有一个中文文本文件,编码为UTF-8,但文件中的文本如下所示: 当我使用Python检测此中文文本文件的编码时: Chardet告诉我文件编码为UTF-8: UnicodeDammit还告诉我该文件编码为UTF-8: 同时,我知道这不是UTF-8,

  • 所以我一直在学习如何在Eclipse中使用JavaFX,并且遇到了一个字符编码错误,它总是发生在类声明之前的最后一个字符上。 每当我运行脚本时,都会出现一个程序错误,该错误正好说明: “无法完成保存。请尝试文件。” 我试过下载一个支持FX的程序,叫做IntelliJ IDEA,同样的错误也发生在那个程序上。然而,我通过手工重写最后一次导入,设法在IntelliJ上修复了这个错误。不幸的是,当我使用

  • 问题内容: 我正在尝试在Windows 8.1上使用node.js(0.10.29)从磁盘加载UTF8 json文件。以下是运行的代码: 运行此命令时出现以下错误: 现在,当我将文件编码(使用Notepad ++)更改为ANSI时,它可以正常工作。 任何想法为什么会这样?在Windows上进行开发的同时,最终解决方案将部署到各种非Windows服务器上,例如,如果将ANSI文件部署到Linux,我

  • 正常的ASCII是正确的,但韩语字符不是。 所以我做了一个简单的程序来读取一个UTF-8文本文件并打印内容。 输出表示,字符在字符串、文字和文件中的编码是不同的。

  • 我知道在读写CSV时,我在某个地方遗漏了“encode=某些编解码器类型”或“decode=某些类型”。 但我不知道到底应该改变什么。所以需要帮助。

  • 我的rails应用程序遇到了问题,我最近从一个不同的开发人员那里接管了这个应用程序。虽然我知道错误意味着什么,我知道我需要强制所有的UTF-8,但没有运气。我已经尝试清理应用程序目录,并将所有文件更新为UTF-8(以前在不同的应用程序上工作过)。 我还阅读了关于ruby的UTF-8问题的不同帖子(例如这里和这里)。 当我运行或任何其他bundle操作时,我会得到以下信息: 还有以下绑定程序的其他错