Windows в Linux UTF-8 файл - PullRequest
       13

Windows в Linux UTF-8 файл

2 голосов
/ 18 марта 2010

У меня есть файл UTF-8, кодирующий в Windows, и когда я использую его в Windows, он показывает все права, но когда я копирую файл в Linux, символы Unicode - это тарабарщина. Файл представляет собой простой текстовый файл. Как я могу получить этот файл для чтения в Linux, или как я могу скопировать его правильно?

заранее спасибо

Ответы [ 3 ]

2 голосов
/ 18 марта 2010

Похоже на проблему с Apache / PHP

Вы запускаете свои строки с помощью встроенного в PHP метода htmlspecialchars (или аналогичного)? Если это так, вам может потребоваться переключить его кодировку на UTF8

Вместо htmlspecialchars($mytext), попробуйте использовать htmlspecialchars($mytext, ENT_COMPAT, 'UTF-8')


Обратите внимание, что следующее (мой предыдущий ответ) неверно, как отмечает Майкл Барр, UTF-8 не нуждается в спецификации и не использует ее.

Если это просто текст, есть вероятность, что он пропускает метку порядка байтов (BOM) или кодируется с неверной спецификацией.

Если это неверно, читатель Linux может почитать его, но читатель Windows игнорирует его. Попробуйте заново открыть файл в чем-то вроде Notepad ++ и сохранить. Notepad ++ имеет несколько параметров в меню «Формат» для сохранения файлов UTF-8.

1 голос
/ 18 марта 2010

Убедитесь, что вы перевели файл в двоичном режиме. Также попробуйте iconv.

0 голосов
/ 18 марта 2010

Сам файл в порядке. Что-то еще в трубе портит текст, прежде чем он будет отправлен в браузер. Эхо текста в различных точках в приложении, чтобы определить, какая операция нарушает его.

...