Unix против Windows рендеринг символов - PullRequest
0 голосов
/ 05 февраля 2009

У меня есть текстовый файл, который отображается по-разному при его открытии во FreeBSD и Windows.

В FreeBSD: Anisis e Investigaciin

в Windows: Análisis e Investigación

Представление окон очевидно верно. Любые идеи о том, как получить этот результат в BSD?

Ответы [ 7 ]

4 голосов
/ 05 февраля 2009

Проблема в том, что это не ASCII, а UTF-8. Вы должны использовать другой редактор, который правильно определяет кодировку, или конвертировать его в то, что понимает ваш редактор на freebsb.

1 голос
/ 05 февраля 2009

По способу отображения символов я бы сказал, что файл является кодировкой UTF-8 в кодировке Unicode. Windows распознает это и правильно отображает символы «á» и «ó», в то время как FreeBSD предполагает, что это ISO-8859-1, в результате чего эти символы отображаются как 2 отдельных символа (из-за кодировки UTF-8 с использованием байт). Вы должны будете как-то сообщить FreeBSD, что это файл UTF-8.

1 голос
/ 05 февраля 2009

Это не чистый ASCII. Это utf-8. Попробуйте редактор freebsd с поддержкой utf-8 или измените локали.

0 голосов
/ 06 февраля 2009

Неважно, какую операционную систему вы используете при открытии файла. Важно то, какое приложение вы используете для его открытия. В Windows вы, вероятно, используете Блокнот, который автоматически определяет кодировку как UTF-8.

Приложение, которое вы используете во FreeBSD, очевидно, этого не делает. Возможно, он просто не может прочитать UTF-8, и вам нужно использовать другое приложение. Или, может быть, вы просто должны сказать ему, какую кодировку использовать. Автоматическое обнаружение кодировки символов далеко не универсально (и гораздо дальше от идеального).

0 голосов
/ 05 февраля 2009

Таким образом, после выполнения нескольких дополнительных копаний, если 1) Откройте файл CSV в Excel на Mac и экспортируйте его как файл CSV и 2) затем откройте его в textmate, скопируйте текст и сохраните его снова.

Результат: file file.csv равен

UTF-8 текст на английском языке Unicode, с очень длинными строками

Оригинал:

текст на английском языке расширенного ASCII по ISO, с очень длинными строками

Этот обходной путь не совсем подходит, так как этот процесс должен быть автоматизирован, спасибо за помощь.

0 голосов
/ 05 февраля 2009

Как файл закодирован? Я бы попробовал перекодировать файл как UTF-16.

...