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

时间:2019-01-22 20:32:22

标签: unicode formatting string-formatting unicode-escapes

似乎我正在使用的数据库有两个非打印字符,这些字符使某些内容混乱。进行一些挖掘之后,计算机将其显示为â,然后显示为U + 0080,然后显示为U + 0093。

知道这些字符可能意味着什么吗?我怀疑它来自Unicode的内容转换不正确。但是我不知道如何翻译。

2 个答案:

答案 0 :(得分:1)

â的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'

答案 1 :(得分:0)

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

数字与UTF-8编码中显示的数字匹配。