Проблемы кодировки символов и PHP - что это за кодировка? - PullRequest
0 голосов
/ 10 сентября 2010

У меня есть файл на моем компьютере, который я хотел скопировать в таблицу MySQL, используя PHP.Когда я открываю файл, его содержимое выглядит нормально, как обычный текст, но когда я пытаюсь прочитать файл с помощью PHP или вставить в таблицу MySQL, я получаю всевозможные прикольные символы.Я подумал, что, возможно, это проблема utf-8, поэтому я попытался установить заголовок

header('Content-type: text/html; charset=utf-8');

, а затем повторил содержимое, полученное с помощью file_get_contents (), но это не имело никакого значения - вывод был все ещефанк.Затем я подумал, что, возможно, это проблема cp1252, поэтому я попытался использовать htmlentities (), но это также не помогло:

htmlentities($str, ENT_QUOTES, 'cp1252')

Затем я загрузил файл на веб-сайт ( здесь ),На сервере, когда я «котирую» файл, он снова выглядит нормально, но в Firefox, когда я открываю его, я получаю прикольные символы.Вот скриншот того, как он выглядит для меня: снимок экрана

Как ни странно, я скопировал тот же самый файл в папку другого веб-сайта на том же сервере, и все же, когда я открываю этот файл на новомURL (см. здесь ) в Firefox один и тот же файл выглядит по-разному - все еще некоторые прикольные символы, но их меньше.Скриншот другого вида: снимок экрана

Кто-нибудь знает, что здесь происходит, и как мне убрать персонажей?Какую кодировку символов использует этот файл - и почему один и тот же файл выглядит по-разному в Firefox при копировании с одного веб-сайта на сервере на другой?

Ответы [ 2 ]

1 голос
/ 10 сентября 2010

У меня была эта проблема раньше.Есть скрытые символы, которые НЕ МОГУТ отображаться в некоторых IDE.

Мне удалось решить эту проблему, открыв файл в Блокноте и скопировав текст, а затем удалив файл.Затем я создал файл с нуля и вставил только обычный текст.

Вы не хотите копировать текст с помощью чего-то вроде wordpad, поскольку это также скопирует скрытые символы.

РЕДАКТИРОВАТЬ:

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

1 голос
/ 10 сентября 2010

Ваш файл в формате UTF-16;попробуйте использовать это в качестве кодировки в Firefox.Это выглядит намного правильнее, хотя все еще есть некоторые случайные символы CJK, которые могут быть вызваны тем, что некоторые из ваших персонажей находятся в неправильном порядке байтов.

Пожалуйста, не забудьте принять ответ на все ваши вопросы, гдебыл дан хороший ответ;многие люди в Stack Overflow могут не отвечать на ваши вопросы из-за отсутствия репутации.

...