Я недавно редактировал текстовый файл с кодировкой в Юникоде, который также включает в себя тайские символы (наряду с «нормальными» символами). По какой-то причине после каждой последовательности тайских персонажей появилась новая строка.Проблема кодирования символов
После некоторого смещения с помощью C, пытаясь удалить все символы новой строки, я активировал vim для проверки файла. По-видимому, после каждой тайской последовательности символов появляется строка «^ M» (без кавычек).
Почему это происходит, и что это «^ М»? Я обнаружил, что могу исправить проблему, удалив последние три символа из тайской строки, но, безусловно, должен быть более элегантный способ исправить это ...
Скорее всего, это проблема с кодировкой файла. Unix и Windows имеют разные соглашения для новой строки. Использует ли ваш код C '\ r'? Открывает ли он файлы в текстовом режиме или в двоичном режиме? –
В моем C-коде используется \ n. Исходный файл был закодирован в кодировке UTF-8. Никакие символы новой строки не являются проблематичными, только иностранные символы создают проблему (китайские символы тоже, как я только что понял) ... – ryyst