Неизвестные символы в конце слова - PullRequest
0 голосов
/ 11 апреля 2019

Я извлекаю данные из базы данных в R. Я использую следующие команды для этого:

drv = dbDriver("MySQL")
con = dbConnect(drv,<credentials>)
dbSendQuery(con,"SET character_set_results = utf8;")
<code to pull data>

Данные хранятся в кодировке UTF-8 в базе данных. Я вытягиваю фрейм данных со столбцом, содержащим слова. Как только я извлекаю данные, я конвертирую кодировку в ASCII // TRANSLIT , используя iconv(x,"UTF-8","ASCII//TRANSLIT") Все работает нормально, за исключением того, что для нескольких слов я вижу дополнительный символ, появляющийся после изменения кодировки. Например, когда вы смотрите в базу данных, вы видите abc, а когда вы импортируете, вы получаете abc. Но как только вы измените кодировку на ASCII // TRANSLIT , это слово изменится на abc?. Я использовал https://www.branah.com/unicode-converter для проверки кодировки. Я скопировал слово abc в первое поле с именем unicode text и вижу abc⬠в поле с именем utf-8 text. Что это за специальные символы и как их использовать в регулярных выражениях для фильтрации этих из

1 Ответ

0 голосов
/ 19 апреля 2019

SET character_set_results = utf8, вероятно, недостаточно.Измените на SET NAMES utf8mb4.

Что вы подразумеваете под «извлекать данные»?Это помещено в таблицу базы данных?Если это так, укажите SHOW CREATE TABLE.

Чтобы исследовать странные символы, выполните SELECT HEX(...) ..., чтобы увидеть, что на самом деле там.Из этого мы можем сделать вывод, что произошло.

Похоже, что ⬠является частью моджибаке для одного из них.⬀, ⬁, ⬂, ⬃, ⬄, ⬅, ⬆, ⬇, ⬈, ⬉, ⬊, ⬋, ⬌, ⬍, ⬎, ⬏, ⬐, ⬑, ⬒, ⬓, ⬔, ⬕, ⬖, ⬗, ⬘,⬙, ⬚, ⬛, ⬜, ⬝, ⬞, ⬟, ⬠, ⬡, ⬢, ⬣, ⬤, ⬥, ⬦, ⬧, ⬨, ⬩, ⬪, ⬫, ⬬, ⬭, ⬮, ⬯, ⬰, ⬱,⬲, ⬳, ⬴, ⬵, ⬶, ⬷, ⬸, ⬹, ⬺, ⬻, ⬻, ⬽, ⬾, ⬿

â¬, when treated as latin1,        is hex E2AC
⬀ when treated as UTF-8 (utf8mb4), is hex E2AC80
⬁                                  is hex E2AC81,
etc

Причины Моджибаке обсуждаются здесь .

Вместо того, чтобы пытаться отфильтровать их, вы должны исправить код, чтобы сохранить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...