URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7641
[ Назад ]

Исходное сообщение
"Кодировка файла при переносе файла на другой хостинг"

Отправлено lyric , 25-Ноя-12 16:09 
Доброго времени суток!

Есть проблема, над которой ломаю голову уже второй день:

Переношу сайт с одного сервера на другой, CMS самописная, часть контента берется из БД (MySQL), часть прямо из php-файлов.

В файле index.php на старом сервере (на котором сайт отображается нормально), такая картина (при просмотре в vi):
if (!$result)
{
print "<h3>\xd0\x97\xd0\xb0\xd0\xbf\xd1\x80\xd0\xbe\xd1\x81 \xd0\xbd\xd0\xb0 \xd
0\xb2\xd1\x8b\xd0\xb1\xd0\xbe\xd1\x80\xd0\xba\xd1\x83 \xd0\xb4\xd0\xb0\xd0\xbd\x
d0\xbd\xd1\x8b\xd1\x85 \xd0\xb8\xd0\xb7 \xd0\xb1\xd0\xb0\xd0\xb7\xd1\x8b \xd0\xb
d\xd0\xb5 \xd0\xbf\xd1\x80\xd0\xbe\xd1\x88\xd0\xb5\xd0\xbb. \xd0\x9d\xd0\xb0\xd0
\xbf\xd0\xb8\xd1\x88\xd0\xb8\xd1\x82\xd0\xb5 \xd0\xbe\xd0\xb1 \xd1\x8d\xd1\x82\x
d0\xbe\xd0\xbc \xd0\xb0\xd0\xb4\xd0\xbc\xd0\xb8\xd0\xbd\xd0\xb8\xd1\x81\xd1\x82\
xd1\x80\xd0\xb0\xd1\x82\xd0\xbe\xd1\x80\xd1\x83 stardog_karadeniz@mail.ru \xd0\x
a1\xd0\x9f\xd0\x90\xd0\xa1\xd0\x98\xd0\x91\xd0\x9e!!!
";
print "\xd0\xba\xd0\xbe\xd0\xb4 \xd0\xbe\xd1\x88\xd0\xb8\xd0\xb1\xd0\xba\xd0\xb8
-".exit(mysql_error())."</h3>";

При переносе сайта на новый сервер буквы при просмотре в том же vi отображаются нормально, однако на сайте отображаются вопросительными знаками.

Файлы пробовал переносить с предварительным архивированием (tar cf public_html.tar public_html) и без него

Кодировка файла - utf-8:
# enca -L russian index.php
Universal transformation format 8 bits; UTF-8

В браузерах (пробовал во всех доступных) тоже utf-8. Пробовал подобрать кодировку в браузере - все равно вопросительные знаки.

Пробовал установить кодировку в .htaccess - та же картина.

На всякий случай: сайт http://kara-deniz.net
Сейчас он на сервере 77.120.101.11 - работает нормально
Переношу на 176.9.113.7 (нужно запись у себя в hosts создать, чтобы увидеть сайт на новом IP) - тут вопросы вместо текста

В какую сторону еще можно посмотреть?


Содержание

Сообщения в этом обсуждении
"Кодировка файла при переносе файла на другой хостинг"
Отправлено ne4to , 25-Ноя-12 17:09 
контент который отображается знаками вопроса берется из базы или из пхп файлов ?

"Кодировка файла при переносе файла на другой хостинг"
Отправлено lyric , 25-Ноя-12 22:00 
> контент который отображается знаками вопроса берется из базы или из пхп файлов
> ?

Из файла.
В первом собщении пример контента из index.php - на старом сервере так отображается при просмотре в vi, cat и т.п. При этом вывод сайта - нормальные русские буквы (UTF-8 в браузере). На новом сервере в редакторах текст отображается нормально, но в выводе сайта - вопросительные знаки.


"Кодировка файла при переносе файла на другой хостинг"
Отправлено ne4to , 26-Ноя-12 00:08 
> Из файла.
>Файлы пробовал переносить с предварительным архивированием (tar cf public_html.tar
>public_html) и без него

архив делал через шелл на сервере старого хостинга?
открой файл из архива в редакторе кторый поддерживает утф8 , русские буквы есть ?
если нет, то криво сделал архив, если есть то трабла с переливской на новый хостинг, как заливаешЪ туда ?


"Кодировка файла при переносе файла на другой хостинг"
Отправлено lyric , 26-Ноя-12 02:47 
>> Из файла.
>>Файлы пробовал переносить с предварительным архивированием (tar cf public_html.tar
>>public_html) и без него
> архив делал через шелл на сервере старого хостинга?
> открой файл из архива в редакторе кторый поддерживает утф8 , русские буквы
> есть ?
> если нет, то криво сделал архив, если есть то трабла с переливской
> на новый хостинг, как заливаешЪ туда ?

Архив делал через шелл на старом хостинге.
На моем компьютере открывается нормально (TextWrangler, определяет кодировку UTF-8, русские буквы показывает)
Пробовал заливать как архив, так и файл отдельно через scp


"Кодировка файла при переносе файла на другой хостинг"
Отправлено ne4to , 26-Ноя-12 11:29 
ну если 1.php открвает норм, то значит другие файлы не в utf
выложи на старом хостинге в архиве один проблемный файл

"Кодировка файла при переносе файла на другой хостинг"
Отправлено lyric , 26-Ноя-12 12:02 
> ну если 1.php открвает норм, то значит другие файлы не в utf
> выложи на старом хостинге в архиве один проблемный файл

http://kara-deniz.net/index.php.tar


"Кодировка файла при переносе файла на другой хостинг"
Отправлено ne4to , 26-Ноя-12 12:11 
>> ну если 1.php открвает норм, то значит другие файлы не в utf
>> выложи на старом хостинге в архиве один проблемный файл
> http://kara-deniz.net/index.php.tar

хм, utf
а теперь скопируй этот ахрив на новый чрез scp
поглядим


"Кодировка файла при переносе файла на другой хостинг"
Отправлено lyric , 26-Ноя-12 12:23 
>>> ну если 1.php открвает норм, то значит другие файлы не в utf
>>> выложи на старом хостинге в архиве один проблемный файл
>> http://kara-deniz.net/index.php.tar
> хм, utf
> а теперь скопируй этот ахрив на новый чрез scp
> поглядим

готово, путь прежний, ip сервера 176.9.113.7 (нужно в hosts прописать)
разархивировал - все так же показывает вопросы


"Кодировка файла при переносе файла на другой хостинг"
Отправлено ne4to , 26-Ноя-12 13:33 
ты используешЪ utf BOM
удали первый невидимый символ в файле (EF BB BF), и все будет ок

"Кодировка файла при переносе файла на другой хостинг"
Отправлено lyric , 26-Ноя-12 15:51 
> ты используешЪ utf BOM
> удали первый невидимый символ в файле (EF BB BF), и все будет
> ок

Супер, заработало!
Про то, что там utf bom я знал, но о том, что в нем дело - мысли не было
Спасибо огромное!


"Кодировка файла при переносе файла на другой хостинг"
Отправлено ne4to , 26-Ноя-12 00:23 
> В первом собщении пример контента из index.php - на старом сервере так
> отображается при просмотре в vi, cat и т.п. При этом вывод
> сайта - нормальные русские буквы (UTF-8 в браузере). На новом сервере
> в редакторах текст отображается нормально, но в выводе сайта - вопросительные
> знаки.

ок, затести как будет отображаться на новом 1.php
<php
echo 'тест';
?>

если тоже знаком вопроса то покажи вывод из консоли
locale
cat 1.php


"Кодировка файла при переносе файла на другой хостинг"
Отправлено lyric , 26-Ноя-12 02:42 
>[оверквотинг удален]
>> сайта - нормальные русские буквы (UTF-8 в браузере). На новом сервере
>> в редакторах текст отображается нормально, но в выводе сайта - вопросительные
>> знаки.
> ок, затести как будет отображаться на новом 1.php
> <php
> echo 'тест';
> ?>
> если тоже знаком вопроса то покажи вывод из консоли
> locale
> cat 1.php

В браузере нормально отображается (UTF-8), cat тоже показывает русские буквы

Локаль на старом сервере
# locale
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
Именно поэтому и такой вывод в vi/cat

На новом:
# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Тут, по идее, все должно быть в порядке