Неизвестные символы в конце слова

0

Я извлекаю данные из базы данных в 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. Что это за специальные символы и как их использовать в регулярных выражениях для их фильтрации?

Теги:
encoding

1 ответ

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню