Как кодировать строки в R с двойной обратной косой чертой?

#r #string #encode

Вопрос:

Есть ли в R какой-нибудь простой способ кодировать строки с двойной обратной косой чертой?. Я извлек некоторые данные с веб-сайта и понял, что слова в данных были расшифрованы. Ниже приводится часть данных:

 '"option_name":"\uc81c\ud488\uc120\ud0dd#$%\uc0c9\uc0c1"'
 

Я хочу, чтобы это было:

 '"option_name":"제품선택#$%색상"'
 

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

Ответ №1:

Учитывая приведенный пример, в нем, похоже, нет «двойной обратной косой черты» — возможно, вы имеете в виду двойные кавычки?

В любом случае строка справа от двоеточия написана в Юникоде, поэтому что-то подобное будет кодироваться правильно:

 string <- "uc81cud488uc120ud0dd#$%uc0c9uc0c1"
new_string <- enc2utf8(string)
cat(new_string)
"제품선택#$%색상"
 

Если вы хотите рассматривать весь выбор как одну строку, вы можете заключить его в одинарные кавычки:

 string <- '"option_name":"uc81cud488uc120ud0dd#$%uc0c9uc0c1"'
new_string <- enc2utf8(string)
cat(new_string)    
"option_name":"제품선택#$%색상"

# to remove the double quotes at the same time:
new_string <- gsub('"', "", enc2utf8(string))
cat(new_string)
option_name:제품선택#$%색상
 

Комментарии:

1. Огромное спасибо за ваш ответ, но в моей строке есть двойная обратная косая черта. Мой пример строки выглядит следующим образом: строка