答案1
黑色字符是由于 Notepad++ 无法将这些字节序列映射到可以可视化的 UTF-8 端点而导致的。您可能知道,每个字符都存储为一系列字节。在这种情况下,这些字节是
十六进制
ED A0 BD ED B8 8A
二进制
1110 1101 1010 0000 1011 1101 1110 1101 1011 1000 1000 1010
这引出了我们的疑问。
那些黑色字符的编码是什么?
这是两个 UTF-8 字符。更具体地说,第一个字符ED A0 BD
是所谓的“高替代”第二个ED B8 8A
是“低替代”. 它们共同构成了UCS 代理。现在我们知道这些是代理字符,我们可以逆转代理对计算。
如果你在UTF-8 代码点表,您会发现第一个映射到U+D83D
,第二个映射到U+DE0A
。因此,该对是 D83D+DE0A。这映射到 U+1F60A,即.....击鼓 笑脸!
因此,您正在看的序列...是一个笑脸。
查找这些字符的正则表达式
现在我们知道了这一点,我们可以使用正则表达式来查找如下序列:
\x{D83D}\x{DE0A}
然后对于您稍后在评论中添加的问题(这是一个编辑)。
有没有其他实用程序可以帮助我找到 csv 文件中可能有非 UTF8 的字符。
我现在已经证明你的文件中的字符是UTF-8。但是,仍然要回答你的问题,如果你想要一个工具来手动尝试找到某些字符的编码,你可以使用本网站。在这里您可以输入一些文本,指定编码,并将其转换为另一种编码以查看它映射到哪些字符。