我正在处理一些本应是有效 UTF-8 的数据文件,但实际上并非如此,这会导致解析器(不在我的控制之下)失败。我想添加一个预验证数据的 UTF-8 格式良好的阶段,但我还没有找到一个实用程序来帮助完成此操作。
有一个web service W3C 似乎已经死了,我发现了一个仅限 Windows 的验证 tool报告无效的 UTF-8 文件,但不报告要修复哪些行/字符。
我很高兴有一个可以插入和使用的工具(最好是跨平台的),或者一个可以作为数据加载过程一部分的 ruby/perl 脚本。
最佳答案
您可以使用 GNU iconv:
$ iconv -f UTF-8 your_file -o /dev/null; echo $?
或者使用旧版本的 iconv,例如在 macOS 上:
$ iconv -f UTF-8 your_file > /dev/null; echo $?
如果文件转换成功,该命令将返回 0,否则返回 1。此外,它还会打印出出现无效字节序列的字节偏移量。
编辑:不必指定输出编码,它将被假定为 UTF-8。
关于validation - 如何检查文件是否是有效的UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/115210/