导出 (Android/Java) 个带有扩展字符的字符串数据以导入 Excel

Export (Android/Java) string data in with extended characters for import into Excel

我需要导出包含 'degrees' 符号(“\u00B0”)的字符串数据。此数据导出为采用 UTF-8 编码的 csv 文本文件。正如预期的那样,度数符号在 java (unicode) 字符串中被编码为两个字符 (0xC2, 0xB0)。当 CSV 文件导入 Excel 时,它显示为带有抑扬音符的大写字母 A,后跟度数符号。

我知道"UTF-8"只支持7位ASCII(作为一个字节),不支持8位"extended ASCII","US-ASCII"只支持7位ASCII周期。

是否有某种方法可以指定编码以抑制 0xC2 前缀字节?

我倾向于允许进行正常处理,然后读取并覆盖文件内容,去除多余的字节。

我真的更喜欢 eloquent 解决方案...

Excel 假定 csv 文件位于 8 位代码页中。

要Excel将您的 csv 解析为 UTF-8,您需要在文件开头添加 UTF-8 字节顺序标记。

编辑:

如果您在西欧或美国,当遇到没有 Unicode 字节顺序标记的文件时,Excel 可能会使用 Windows-1252 字符集进行解码和编码。

由于 0xC20xB0 都是合法的 Windows-1252 字符,Excel 将解码为以下内容:

0xC2 = Â
0xB0 = °