如何量化字符编码导致的错误数量?

How to quantify number of errors due to character encoding?

提问人:astel 提问时间:10/19/2023 更新时间:10/19/2023 访问量:43

问:

我有一个数据进程,其中字符串通过许多具有不同字符编码的应用程序/数据库传递。在此过程中,有些步骤是 UTF-8,有些不是,但我访问该数据的最终数据库是使用 Windows-1252 的 oracle 数据库。

我试图说服我的数据库管理员这是一个问题,但很难量化问题的严重程度。有没有办法获取存储在我的数据库中的字符串,并计算包含至少一个字符的字符串数,这些字符的显示方式与数据库使用编码 UTF-8 时的显示方式不同?

UTF-8 字符编码 Windows-1252

评论

0赞 Joachim Sauer 10/20/2023
这实际上取决于每个系统处理字符编码的好坏。如果所有内容都正确地进行转换,那么您最终只会得到所有涉及的字符编码(可能是 ASCII 加上更多字符)支持的最小重叠字符子集。如果任何中间系统“破坏”数据(即没有真正进行转换,而是大部分传递数据,但不完全传递),那么结果可能会更糟。它有多糟糕取决于你的系统中有什么。主要是美籍地址吗?你会活下来的。其他事情......不那么重要。
0赞 astel 10/20/2023
我知道系统肯定没有正确进行转换。例如,在我的预言机数据库中,有相当多的记录包含倒置的问号。当我将这些记录追溯到用户的原始输入时,这些颠倒的问号是表情符号或汉字等。我量化这个问题的一次尝试是计算包含倒置问号的记录数量,但我知道这个问题远不止于此,我认为这样做会遗漏很多记录
0赞 skomisa 10/20/2023
需要明确的是,您是否正在寻找一种基于 Oracle 的方法来检查数据库中的任意字段/表,并识别那些有效的 UTF-8 字符但不是有效的 Windows-1252 字符?如果是这样,Database Administrators Stack Exchange 是提出问题的更好地方。但是,如果您正在寻找编程解决方案,则需要提供更多详细信息,从您将使用的语言开始,以及您迄今为止所做的任何努力的详细信息。就目前而言,您的问题有点过于笼统和抽象。

答: 暂无答案