Корректные диакритические знаки в mysql выводят на CentOS

echo dir[1-3] | xargs -r -n1 cp file[1-5]

1
23.06.2013, 11:44
1 ответ

Это похоже на Unicode (UTF-8) данные, отображенные как ISO-8859-2. Существует по существу две возможности:

  1. Ваш терминал использует ISO-8859-2 в качестве выходного набора символов. Затем сами данные, вероятно, закодированы правильно, но отображены неправильно: То, что Вы видите, является результатом, который ожидается, когда Вы отобразите данные UTF-8, как будто это был ISO-8859-2. Попробуйте терминал и/или редактора, который способен к работе с UTF-8. (Я не уверен в нано, но энергия может работать с UTF-8, если Вы используете set encoding=utf-8.)

  2. Ваш терминал использует UTF-8 в качестве выходного набора символов. Затем сами данные кодируются неправильно: это - данные, которые были "преобразованы" от ISO-8859-2 до UTF-8 даже при том, что это уже были данные UTF-8. Можно использовать iconv или recode переводить UTF-8 назад в ISO-8859-2 (или скорее "вдвойне закодировал UTF-8" назад к надлежащему UTF-8), например, iconv -f UTF8 -t ISO_8859-2 yourinputfile.

Какую терминальную программу делают Вы используете и что является выводом echo $LC_CTYPE?

2
27.01.2020, 23:39
  • 1
    Вывод $SHELL эха является/bin/bash. Вывод $LC_CTYPE эха является пустой строкой. –  Dušan Rychnovský 23.06.2013, 11:31
  • 2
    То, что файл отображен правильно в Блокноте и что LC_CTYPE сброшен, кажется, указывает, что это - действительно проблема с дисплеем (т.е. случай 1 в моем исходном ответе), а не проблема кодирования (случай 2). –  Uwe 23.06.2013, 17:00
  • 3
    Какова Ваша терминальная программа? Вы используете консоль (без X11), или Вы используете какую-либо систему управления окнами? Во втором случае Вы используете xterm, rxvt, консоль, терминал гнома, или что другой эмулятор терминала? Возможно в некоторой степени использовать UTF-8 на консоли Linux, но поддержка ограничена. Актуальнейшие эмуляторы терминала могут (или может быть настроен) работать с UTF-8. Поиск "unicode" и или "консоль Linux" или название Вашей программы эмулятора терминала. –  Uwe 23.06.2013, 17:01

Теги

Похожие вопросы