Я пытаюсь выполнить базовый анализ текста из командной строки, но всякий раз, когда я пытаюсь запустить команду, я получаю следующее: tr: Недопустимая последовательность байтов. Я сузил проблему до специальных символов в тексте (´, ˆ,¨ и т. д.). Можно ли что-то сделать, чтобы удалить эти специальные символы из текста? Могу ли я использовать командную строку? Или мне нужно запустить скрипт?
Есть ли способ удалить специальные символы из текстового файла?
Ответы (1)
Я не знаю, как вы пытаетесь обработать свой текст, но, видимо, вы пытаетесь запустить tr
, что выдает вам сообщение об ошибке tr: Illegal byte sequence
. Это происходит, когда его ввод не является последовательностью байтов, соответствующей действительной кодировке UTF-8 (не все последовательности байтов соответствуют кодировке UTF-8 ряда символов Unicode).
Я не знаю, какой тип файла вы пытаетесь обработать, но в среде MacOS X команда file -I
может дать вам представление о кодировке, которая на самом деле существует.
Если вам нужно просто перекодировать ваш файл, то iconv
— полезная программа. Вы можете использовать его для перекодирования в кодировку UTF-8 с помощью iconv -f ... -t utf8
(где ...
— это кодировка вашего исходного файла, запустите iconv -l
, чтобы получить список доступных кодировок).
Или, если вы действительно хотите удалить специальные символы в вашем файле (как указано в заголовке вашего вопроса), вы можете использовать iconv -f ... -t ascii//TRANSLIT
. В этом последнем случае «специальные символы» будут аппроксимированы обычными символами ASCII.
iconv -f utf8 -t ascii//TRANSLIT
— это то, что вам нужно. Или, скорее, с чем-то другим вместоutf8
, в зависимости от того, что находится в вашем файле. См. stackoverflow.com/questions/8562354/. - person Freek Wiedijk   schedule 22.01.2017file -I
, чтобы угадать кодировку вашего файла, см. заголовок stackoverflow.com/questions/4255305/. - person Freek Wiedijk   schedule 23.01.2017