вывод текста из базы в разных кодировках

Serhio

Guest
вывод текста из базы в разных кодировках

В базе находится 2 текста в кодировке win1251 и utf8_unicode_ci. Кодировка html страницы, куда выводятся оба текста, win1251. При выводе на экран оператором echo текста в кодировке utf8_unicode_ci вместо текста крякозябры. В самой базе тест виден правильно. Как это побороть?
 

svetasmirnova

маленький монстрик
Как я поняла какой текст в какой кодировке непонятно?
Тогда плохой совет, но лучше за 5 сек не придумаю:
PHP:
if (mb_str_len($str) == str_len($str)) {
echo $str;
} else {
echo mb_convert_encoding($str, 'cp1251', 'utf8');
}
 

Serhio

Guest
Первый текст в кодировке win1251, он выводится нормально, так как совпадает с кодировкой самой страницы.
Второй текст в кодировке utf8_unicode_ci его и нужно вывести именно в этой кодировке, а не конвертировать в 1251, так как там текст иероглифами, а 1251 их не понимает.
 

Фанат

oncle terrible
Команда форума
Света, к вопросу о торопливости с ответами =)

Serhio, друг мой.
Поясни пожалуйста, какой смысл ты вкладываешь в слово "конвертировать"?
И понимаешь ли ты, что такое "кодировка html страницы"
 

Serhio

Guest
2 Фанат:
Возможно я ошибаюсь, тогда поправте.
Под конвертировать я понимаю перевод текста из одной кодировки в другую.
По поводу кодировки хтмл страницы (может я не правильно выразился, что скорее всего). Имелось в виду, что в заголовке страницы указываю следующий параметр
charset=windows-1251
И поставлю вопрос по другому. Если указано браузеру, что charset=windows-1251. Как вывести на экран иероглифы?
 

svetasmirnova

маленький монстрик
Фанат
)))
Serhio
Отправить браузеру неконвертированный текст) А если вопрос следует понимать "как следует вывести по-русски то, что выводится в настоящий момент некорректно", то есть 2 варианта: послать заголовок с указанием кодировки UTF или отконвертировать текст в UTF
 

Фанат

oncle terrible
Команда форума
Под конвертировать я понимаю перевод текста из одной кодировки в другую.
прекрасно.
если ты это понимаешь, то какая проблема перевести из утф в 1251, чтобы буквы ПЕРЕСТАЛИ быть кракозябрами?
По поводу кодировки хтмл страницы (может я не правильно выразился, что скорее всего). Имелось в виду, что в заголовке страницы указываю следующий параметр
charset=windows-1251
прекрасно.
то есть, страница у тебя в 1251.
Тогда каким образом ты собираешься выводить на ней утф, чтобы он был виден буквами? если тясно сказал браузеру, что тут будет 1251?
Если указано браузеру, что charset=windows-1251. Как вывести на экран иероглифы?
не иероглифы, ты хотел сказать, а текст,чтобы выглядел нормально? ПЕРЕКОНВЕРТИРОВАТЬ его в 1251
 

Serhio

Guest
2 Света:
Мне не надо по русски, мне надо иероглифами. Когда смотрю запись в базе темже пхпадмином, то текст иероглифами, а выводится крякозябрами. может во время запроса происходит конвертация?
 

Profic

just Profic (PHP5 BetaTeam)
Serhio
убеждался, что "В самой базе тест виден правильно" через phpmyadmin?
если да, то пойми, что из двух текстов на одном языке выведенных в двух разных кодировках в одном документе хотя бы один будет "кракозябрами".
исходник phpmyadmin сам догадаешься посмотреть? а заодно и мануал по mysql на предмет set names?
 

svetasmirnova

маленький монстрик
Serhio
Текст натуральными иероглифами? По-китайски? И русский на той же странице? Всё в utf8 выводить
 

robocomp

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

Но проблему у тебя в том, на мой взгляд, что ты сообщил броузеру, что страница у тебя в 1251, так? Что броузер сделает, встретив символы из УТФ? Покажет их в 1251, логично?
Как насчёт показывать все в УТФ? Возьми и сконвертируй всё в УТФ и храни всё данные в утф. чем такой вариант не подходит?
 

Profic

just Profic (PHP5 BetaTeam)
ага, так у него оказывается иероглифы...
тогда или выводи все в UTF8
или преобразуй свой текст с иероглифами к виду Ҽ. как конвертировать - в поиск по форуму

-~{}~ 07.07.05 13:56:

Serhio
кстати тебе нужно 2 поставить на составление вопроса.
 

Serhio

Guest
Спасибо за ответы. Попробую.

-~{}~ 07.07.05 14:14:

Установил charset=utf8, но вместо 千夜一夜物語 получаю все теже ??????
 

svetasmirnova

маленький монстрик
Браузеру какой заголовок шлётся? Посмотри что phpMyAdmin шлёт
 

Serhio

Guest
utf-8 он шлет. поставил. но вместо 千夜一夜物語 получаю все теже ??????
 

Serhio

Guest
Чтож не получилось просто, будем ковырятся дальше. Спасибо за советы.

-~{}~ 07.07.05 15:39:

Спасибо Profic. Твой способ сработал.
 

Topinambur

Новичок
Автор оригинала: Serhio
Чтож не получилось просто, будем ковырятся дальше. Спасибо за советы.

-~{}~ 07.07.05 15:39:

Спасибо Profic. Твой способ сработал.
Подскажите пожалуйста , как конвертировать иероглифы подобным образом " & # 1212 ; "?
 
Сверху