Php+oracle проблемы с кодировкой, как убрать вопросы и вывести кириллицу ?
Люди, помогите, уже весь мозг перевернул с этой проблемой. Есть серв на оракле, есть приложение на пыхе. В оракле все содержится в кодировке cp-866, кириллическими буквами, делаю выборку, вывожу на экран - на локали(win xp sp3, apache 2.2.25, php 5.4.29, mod_fcgid 2.3.6) все отлично и буквы отображаютс нормально.
Попросил поднять мне на виртуальной машине серв, чтобы там разместить приложение. Все перенес туда, только win 7 и клиент оракловый поставил instantclient-basic-nt-12.1.0.1.0
Вот тут возникли траблы, вместо русских симолов выводит знаки вопроса. Смена кодировки страницы в браузере не помогло( дефолтная кодировка страницы win1251),
iconv($str,'CP866','CP-1251') Не канает, хотя на моей локали функция отрабатывала замечательно. То есть считываются цифры и знаки нормально, а русские буквы заменяются на вопросики. mb_detect_encoding выдает кодировку ansii. будьте добры, помогите выяснить и решить проблему
Проверяйте кодировку:
1. Параметр NLS_LANG ораклового клиента (в реестре правите ручками, ибо по дефолту ставит 1252)
2. При создании подключения явно укажите кодировку базы
прописал кодировку в коннекте, выставил переменную окружения NLS_LANG= AMERICAN_AMERICA.CL8MSWIN1251
выставил в хттп.конф SetEnv AMERICAN_AMERICA.CL8MSWIN1251 похеру мороз, как давал вопросики так и дает
@Mussi вы же в вопросе написали, что "В оракле все содержится в кодировке cp-866", так почему же вы в коннекте к базе указываете 1251? Если у Вас база в досовской кодировке, то и подключайтесь к ней соответственно через RU8PC866. У меня база в CL8MSWIN1251. эту кодировку я указал в параметре реестра и в функции коннекта. Все работает. Проверьте на всякий случай, чтобы сам html был в правильной кодировке, и для странице в meta выставленно было правильное значение. Может тут рассинхрон
гмгм, действительно, видно я затупил, проверил базу, кодировка у нее CL8MSWIN1251
на локали однако win-1251 не выводилась стандартно, а вот иконф(цп866, цп1251 помогало)
Бывает проблема в коде апачи, там по умолчанию стоит что то вроде AddDefaultCharset UTF-8
собственно это вызывало у меня такую же проблему с некоторыми сайтами cp866