我在数据库中发现了两个非打印字符,它们是什么意思?
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'
似乎是我正在处理的一个数据库,有两个非打印字符,这些字符导致了一些问题。做了一些挖掘后,计算机显示它们为 â,然后是 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'