由于一些编码问题,我的数据库中的某些字符被错误地解释。某些字符已被替换为“替换字符”。我需要找到所有这些字符并用空格替换它们。我一直在使用 sed、bash、perl 等搜索不同的解决方案,但没有成功。有人可以分享如何找到这样的字符(即在十六进制/八进制值中查找这个字符)并将它们替换为任何其他字符的解决方案吗?
谢谢。
Unicode“替换字符”字形通常不是底层数据存储系统中的内容:它通常在显示层被替换(因为解码失败),并且实际上并没有告诉您底层代码是什么/是什么。
您在这里有两个选择:
第一个(也是最好的)是找出底层的字形/代码是什么,并使用你的数据库工具来清理这些东西。
第二种是通过进行 Unicode 转换的东西导出您的数据,在那里搜索/替换“替换字符”代码,然后重新导入您的数据。除了最小的数据集之外,这通常对所有数据集都是不可行的(如果问题是您的工作站无法弄清楚如何处理 Unicode 字形,它也无法解决您的问题)。