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

  • Автор темы Автор темы woxel
  • Дата начала Дата начала

woxel

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

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

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

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

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

-~{}~ 31.07.07 12:09:

нашел функцию convert_cyr_string это то? как ее оформить?
прежде, чем ее "оформлять", надо определиться.
в какой кодировке у тебя данные в базе.
и на работу с какой кодировкой база у тебя настроена.
 
есть таблица, в ней несколько строк отображается неправильно(именно строк, т.е. все поля в строке не отображаются, неправильные строки располагаются и в начале и в конце таблицы, кол-во строк разных кодировок примерно одинаково)
причем все строки берутся одинаково из базы
 
Можно ли создать такой php скрипт что бы при получании он проверял тип кодировки и конвертировал в другую? если да то как?
НЕ НАДО создавать такой скрипт.
Надо сделать несколько простых действий, которые за тебя никто не сделает
1. Определиться с кодировкой.
2. Привести все элементы приложения к этой кодировке (скрипты, данные в базе)
3. Настроить БД для работы с этой кодировкой.
4. Указывать эту кодировку в заголовках отдаваемых документов.
 
кодировка задана в заголовке страницы(koi8r), бд настраивал, редактировал my.cnf
 
Автор оригинала: *****
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:

Автор оригинала: *****
Ты под линуксом сидишь, что ли?
да, сервер под линуксом
 
Автор оригинала: *****
при чем здесь сервер?
сами скрипты, русский текст в них - в какой кодировке?
это шутка?
в koi8r
нет не шутка, а то что выдает mysql, при этом при выполнении SET character_set_client='koi8r', ничего не меняется
 
В общем, у тебя сейчас две проблемы.
1. База данных не настроена должным образом.
2. В какой-то таблице этой базы данных есть какие-то левые данные непонятно в какой кодировке. я сильно не уверен, что там 1251

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

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