我在数据库中发现了两个非打印字符,它们是什么意思?

I have found two non-printing characters in a database, what do they mean?

似乎是我正在处理的一个数据库,有两个非打印字符,这些字符导致了一些问题。做了一些挖掘后,计算机显示它们为 â,然后是 U+0080,然后是 U+0093。

知道这些字符的含义吗?我怀疑它来自未正确转换的 Unicode。但是我不知道怎么翻译。

找到一个为我描述它的网站。 https://www.compart.com/en/unicode/U+2012#UNC_DB

数字与 UTF-8 编码中出现的数字相匹配。

â 的 Unicode 代码点是 U+00E2。 E2 80 93 是连字符的 UTF-8 序列,特别是 U+2013 EN DASH.

如果 UTF-8 编码的数据被错误地解码为 ISO-8859-1(也称为 "latin1"),它会按照您的描述显示。这是 Python 中的示例:

>>> print('\u2013')  # Displays U+2013 EN DASH
–
>>> '\u2013'.encode('utf8') # byte sequence of UTF-8-encoded EN DASH
b'\xe2\x80\x93'
>>> '\u2013'.encode('utf8').decode('latin1')  # decoded incorrectly
'â\x80\x93'