Я нашел два непечатных символа в базе данных, что они значат? - PullRequest
0 голосов
/ 22 января 2019

Кажется, база данных, над которой я работаю, содержит два непечатаемых символа, которые что-то напутали. После некоторых копаний компьютер показывает их как â, затем U + 0080, затем U + 0093.

Есть идеи, что могут значить эти персонажи? Я подозреваю, что это что-то из Unicode, которое не было преобразовано правильно. Но я не знаю, как это перевести.

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Код 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'
0 голосов
/ 23 января 2019

Нашел сайт, который описал это для меня. https://www.compart.com/en/unicode/U+2012#UNC_DB

Числа соответствовали тому, что появилось в кодировке UTF-8.

...