我从客户端收到了一堆CSV文件(看起来像是一个数据库转储),而且很多列都有这样奇怪的字符:
这似乎是代表é的很多角色。有谁知道什么编码会产生é的许多字符?我不知道他们从哪里获取这些CSV文件,但假设我无法以更好的格式获取它们,我如何将它们转换为UTF-8?
答案 0 :(得分:6)
看起来这是一个双重重新编码的UTF-8。 可能可以通过将其打开为utf-8来恢复数据,将其保存为Latin-1(可能),并再次将其打开为UTF-8。
答案 1 :(得分:4)
看起来它已经过了一个腐败过程,其中数据写成utf-8但是读作cp1252,这发生了三次。这可能是可恢复的(我不知道它是否适用于每个字符,但至少对某些字符来说)通过反向转换放入损坏的数据 - 读入为utf8,写出为cp1252,重复。有很多方法可以进行这种转换 - 使用Tordek建议的文本编辑器,使用下面的命令行工具,或者使用数据库或编程语言中内置的编码功能。
unix shell prompt> echo Alain Lefèvre |
iconv -f utf-8 -t cp1252 |
iconv -f utf-8 -t cp1252 |
iconv -f utf-8 -t cp1252
Alain Lefèvre
unix shell prompt>
答案 2 :(得分:0)
这似乎是代表é的很多角色。
请记住,字符≠byte 。你在输出中看到的是人物;你需要做一些不寻常的事情来实际看到字节。 (我建议使用xxd
应用程序安装的“od
”工具;或者“enca
”,GNU操作系统的Vim之一。)< / p>
有谁知道会产生哪种编码
一个擅长猜测字节流的字符编码的工具是“{{1}}”core utilities。