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

Unicode 我在数据库中发现了两个非打印字符,它们是什么意思?,unicode,formatting,string-formatting,unicode-escapes,Unicode,Formatting,String Formatting,Unicode Escapes,似乎我正在处理的一个数据库,有两个非打印字符,这两个字符把一些东西弄得乱七八糟。在做了一些挖掘之后,计算机显示它们为–然后是U+0080,然后是U+0093 你知道这些人物是什么意思吗?我怀疑它来自Unicode,但没有正确转换。但是我不知道如何翻译它。找到了一个为我描述它的网站。 这些数字与UTF-8编码中出现的数字相匹配。的Unicode码点是U+00E2E2 80 93是连字符的UTF-8序列,特别是U+2013 EN破折号 如果UTF-8编码的数据被错误地解码为ISO-8859-1(也

似乎我正在处理的一个数据库,有两个非打印字符,这两个字符把一些东西弄得乱七八糟。在做了一些挖掘之后,计算机显示它们为–然后是U+0080,然后是U+0093


你知道这些人物是什么意思吗?我怀疑它来自Unicode,但没有正确转换。但是我不知道如何翻译它。

找到了一个为我描述它的网站。


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

的Unicode码点是U+00E2<代码>E2 80 93是连字符的UTF-8序列,特别是
U+2013 EN破折号

如果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符号表示Unicode代码点(独立于编码),而不是字节(取决于编码)。你应该试着不要把事情混为一谈(这个话题已经很复杂了,它会让你更难管理)。