Конвертация из koi8r в cp1251 или наоборот

woxel

Новичок
Конвертация из koi8r в cp1251 или наоборот

Имеется база и собственно скрипт забирающий оттуда данные. Часть получаемой страницы отображается в кодировке koi8r а часть cp1251, соответственно часть данных отображается неверно(или то, или то). Было перепробовано все: от ковыряния в конфигах mysql и базы, до жесткого задания кодировки в php скрипте(при этом отображаются знаки вопроса, даже если приведена кодировка которая работает)
Можно ли создать такой php скрипт что бы при получании он проверял тип кодировки и конвертировал в другую? если да то как?
 

woxel

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

п.с. нашел функцию convert_cyr_string это то? как ее оформить? с определением разобрался
 

Фанат

oncle terrible
Команда форума
woxel
знаешь такую сентенцию, "наша фирма выполняет работы бычтро качественно и дешево. Выберите два любых пункта."?
Быстро, бесплатно и качественно не бывает.
Так что придется или за деньги нанимать специалиста, или искать ответ самому, а не сидеть на форкме и ждеть, что тебе бычтро решат твои проблемы.

Тем более, когда ты не умеешь задать вопрос.
что значит "Часть получаемой страницы отображается в кодировке koi8r а часть cp1251 "?

ты можешь хотя бы по человечески написать - какая часть в какой кодировке?
А то один дуремар уже тебе настучал неправильный ответ.

-~{}~ 31.07.07 12:09:

нашел функцию convert_cyr_string это то? как ее оформить?
прежде, чем ее "оформлять", надо определиться.
в какой кодировке у тебя данные в базе.
и на работу с какой кодировкой база у тебя настроена.
 

woxel

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

Фанат

oncle terrible
Команда форума
Можно ли создать такой php скрипт что бы при получании он проверял тип кодировки и конвертировал в другую? если да то как?
НЕ НАДО создавать такой скрипт.
Надо сделать несколько простых действий, которые за тебя никто не сделает
1. Определиться с кодировкой.
2. Привести все элементы приложения к этой кодировке (скрипты, данные в базе)
3. Настроить БД для работы с этой кодировкой.
4. Указывать эту кодировку в заголовках отдаваемых документов.
 

woxel

Новичок
кодировка задана в заголовке страницы(koi8r), бд настраивал, редактировал my.cnf
 

woxel

Новичок
Автор оригинала: *****
2. Привести все элементы приложения к этой кодировке (скрипты, данные в базе)
скрипты приведены, вот вывод SHOW VARIABLES LIKE 'char%':
character_set_client utf8
character_set_connection koi8r
character_set_database koi8r
character_set_results utf8
character_set_server koi8r
character_set_system utf8
character_sets_dir /usr/local/share/mysql/charsets

-~{}~ 31.07.07 12:26:

Автор оригинала: *****
Ты под линуксом сидишь, что ли?
да, сервер под линуксом
 

woxel

Новичок
Автор оригинала: *****
при чем здесь сервер?
сами скрипты, русский текст в них - в какой кодировке?
это шутка?
в koi8r
нет не шутка, а то что выдает mysql, при этом при выполнении SET character_set_client='koi8r', ничего не меняется
 

Фанат

oncle terrible
Команда форума
В общем, у тебя сейчас две проблемы.
1. База данных не настроена должным образом.
2. В какой-то таблице этой базы данных есть какие-то левые данные непонятно в какой кодировке. я сильно не уверен, что там 1251

рекомендую тебе сделать вот что:
завести тестовую таблицу.
и на ее примере наладить работу с базой данных.
чтобы все добавлялось и выводилось из бд в кои8.

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