Java解析UTF8

标签 java character-encoding utf-8

我对结构如下的 UTF8 文件有以下问题:

FIELD1§FIELD2§FIELD3§FIELD4

查看它使用 A7 编码 § 的文件的十六进制值。所以根据这个编码应该是UTF8,但是很奇怪因为A7 > 7F 所以1个字节应该不足以编码§

所以我尝试直接使用具有指定字符集的 BufferedReader:

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(input), utf8))

但是当我尝试用

标记字符串时
SmartTokenizer st = new SmartTokenizer(toTokenize, "§")

(SmartTokenizer 是保留空标记的 StringTokenizer 的修改版本)

没有 split 发生,如果我尝试打印我获得的字符串

FIELD1?FIELD2?FIELD3?...

因此文件中使用的 § 与指定为分隔符的不同,它也无法打印出来。

那么这里有什么问题呢?也许原始文件应该使用 2 个字节来存储 §

最佳答案

§的UTF-8编码为0xC2 0xA7

如果该文件使用A7 来表示§,那么它可能写在ISO-8859-1 中。 (或另一个 ISO-8859-* 或其衍生物)。

关于Java解析UTF8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2586564/

相关文章:

python - Pandas 数据框到 excel 给出 "file is not UTF-8 encoded"

java - 安装后UnsatisfiedLinkError,无法运行PLAY

java - 将 Activity 实例传递给 IntentService

java - 如何解读storm的并行性?

javascript - 对于 JavaScript 字符串等场景,base128 编码的可行性如何?

javascript - 如何使用 jQuery 获取包含在 td 中的 HTML?

mysql - 如何在 MariaDB 10 中启用大索引?

xml - 使用 MSXML 以 UTF-8 格式保存 XML

Java 公共(public)变量问题

ruby-on-rails - 来自 Rails 表单的用户数据不是采用 UTF-8 编码吗?