我确定这是一个编码问题,但我无法弄清楚。
我从 Excel 中将电子表格导出为 UTF-8 CSV。这产生了一个 UTF-8-BOM 字符编码的 CSV。在 Notepad++ 中打开这个文件,大部分字符都被正确渲染了——包括非 ANSI 字符,如ø
. 但是,连字符 ( ‐
) 显示为☐
。
我相信性格是U+2010 ‐ HYPHEN
。
如果我在记事本中打开文件,连字符会正确显示。如果我使用Vim读取文件或cat
将其打印到终端,它也会正确显示。
最后,文件的八进制转储显示十六进制字节e2 80 90
,这是U+2010 - HYPHEN
Unicode 字符的 UTF-8 编码。
那么为什么 Notepad++ 会显示这个字符☐
呢?
如果其他字符被正确解码并且字节级数据看起来正确,则问题可能仅出在字体上。U+2010足够高,以至于某些字体可能没有可用的字形。
这个对另一个超级用户问题的回答指出,许多常见的 Windows 7 字体没有HYPHEN的字形。