Проблема с конвертацией символов.

Ваано
На сайте с 01.08.2009
Offline
112
682

Доброго времени суток.

Имеется проект с самописной админкой и утерянными контактами разработчиков.

Работает всё ок, но при переносе на новый хостинг возникла проблема: некоторые русские символы отображаются некорректно - http://clip2net.com/s/2klim

Список символов, некорректно отображающихся: "И", дефис и некоторые виды кавычек.

На сайте используется кодировка iso-8859-1, которая вообще русский не поддерживает, поэтому используются костыли - русские символы кодируются в htmlentities (что-то в таком роде & # 1057; )

Кстати, какой функцией php такое преобразование выполняется может кто знает?

Если кто сталкивался с подобным или знает как решить проблему - буду благодарен за помощь. Думаю стоит копать в сторону разницы в настройках php.ini на новом сервере и на старом. Что-то с кодировками связанное.

Туры в Мексику тут (http://www.metmexico.com). Оптимальное отношение цена/качество.
minor
На сайте с 04.10.2010
Offline
70
#1

Тут видно что скорее всего из utf-8 в iso-8859-1, только почему то отдельные символы.

В пыхи ф-й iconv можно конвертить, или можно попробовать приписать в .htaccess AddDefaultCharset вроде называется

PHP experience 2 year, comprehend seo
IO
На сайте с 23.09.2012
Offline
1
#2

Выставите в настройки апача (файл .htaccess в корне).

AddDefaultCharset utf-8
AddCharset utf-8 *
<IfModule mod_charset.c>
CharsetSourceEnc utf-8
CharsetDefault utf-8
</IfModule>
IL
На сайте с 20.04.2007
Offline
418
#3
Ваано:
Список символов, некорректно отображающихся: "И", дефис и некоторые виды кавычек.

ш нормально отображается?

При подключении к БД тюкнуть..

SET NAMES 'utf8'
Ваано:
На сайте используется кодировка iso-8859-1, которая вообще русский не поддерживает, поэтому используются костыли

Эм.. а есть веские причины? Или из серии "работает - не трогать!"? )

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
S2
На сайте с 04.09.2012
Offline
47
#4

Данные я так понимаю хранятся в MySQL базе?

Можно попробовать принудительно сделать дамп базы на старом хостинге в iso-8859-1:

mysqldump --default-character-set=iso-8859-1 има_базы > дамп.sql

или через phpMyAdmin если нет доступа к командной строке.

И затем влить этот дамп в базу на новом хостинге.

Виртуалтный хостинг от 1.2$ (http://billing.domen-hosting.net/aff.php?aff=142) VDS/VPS от 8,5$ (http://billing.domen-hosting.net/aff.php?aff=142) Выделенные сервера от 39$l (http://billing.domen-hosting.net/aff.php?aff=142)
Ваано
На сайте с 01.08.2009
Offline
112
#5

Спасибо всем за помощь.

Разобрался наконец-то. Проблема оказалась в кодировке админ страницы. В html-тегах прописана была кодировка ISO-8859-1, но браузером автоматически выбиралась UTF-8. При этом русские символы, набираемые в UTF-8, конвертились с ошибками.

Решил проблему конвертацией всех используемых php-файлов админки в кодировку ANSI. Теперь всё работает.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий