java - 从文件读取后特殊字符未正确填充

标签 java utf-8

InputStreamReader isr = new InputStreamReader(new FileInputStream(f), "UTF-8");

根据规则,它应该返回流中的所有指定字符。但它工作得不好。它正在将特殊字符转换为一些无效的字符串。

输入字符:éÇüéâäàåçêëèïîìäÅÉæ

从上述方法读取后的输出:������������������ ��

最佳答案

这意味着您的流不是 UTF-8 格式。它可能采用 Windows-1252 或 ISO 8859-1 或其他某种编码。

读取器需要使用流编码所用的编码,才能正确读取它。

值得注意的文章:The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

关于java - 从文件读取后特殊字符未正确填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39411765/

相关文章:

java - TIFF 高度错误

java - 对共享文件夹的访问受到限制

php - WordPress MySQL 插入 JSON 编码数据时出现奇怪的行为

regex - 如何使用非拉丁词的正则表达式定义促销?

ios - SQLite 编码问题

java - JNI native 方法未出现在 Javadoc 中

java - Google URL 缩短 API 在 Java 中不起作用

java - Google App Engine/Java - 不一致的 ORDER BY

python - 使用 unicode 字符 u201c

c++ - 如何在 C++ 中检查字符串是否具有有效的 UTF-8 字符?