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

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

Serhio

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

В базе находится 2 текста в кодировке win1251 и utf8_unicode_ci. Кодировка html страницы, куда выводятся оба текста, win1251. При выводе на экран оператором echo текста в кодировке utf8_unicode_ci вместо текста крякозябры. В самой базе тест виден правильно. Как это побороть?
 
Как я поняла какой текст в какой кодировке непонятно?
Тогда плохой совет, но лучше за 5 сек не придумаю:
PHP:
if (mb_str_len($str) == str_len($str)) {
echo $str;
} else {
echo mb_convert_encoding($str, 'cp1251', 'utf8');
}
 
Первый текст в кодировке win1251, он выводится нормально, так как совпадает с кодировкой самой страницы.
Второй текст в кодировке utf8_unicode_ci его и нужно вывести именно в этой кодировке, а не конвертировать в 1251, так как там текст иероглифами, а 1251 их не понимает.
 
Света, к вопросу о торопливости с ответами =)

Serhio, друг мой.
Поясни пожалуйста, какой смысл ты вкладываешь в слово "конвертировать"?
И понимаешь ли ты, что такое "кодировка html страницы"
 
2 Фанат:
Возможно я ошибаюсь, тогда поправте.
Под конвертировать я понимаю перевод текста из одной кодировки в другую.
По поводу кодировки хтмл страницы (может я не правильно выразился, что скорее всего). Имелось в виду, что в заголовке страницы указываю следующий параметр
charset=windows-1251
И поставлю вопрос по другому. Если указано браузеру, что charset=windows-1251. Как вывести на экран иероглифы?
 
Фанат
)))
Serhio
Отправить браузеру неконвертированный текст) А если вопрос следует понимать "как следует вывести по-русски то, что выводится в настоящий момент некорректно", то есть 2 варианта: послать заголовок с указанием кодировки UTF или отконвертировать текст в UTF
 
Под конвертировать я понимаю перевод текста из одной кодировки в другую.
прекрасно.
если ты это понимаешь, то какая проблема перевести из утф в 1251, чтобы буквы ПЕРЕСТАЛИ быть кракозябрами?
По поводу кодировки хтмл страницы (может я не правильно выразился, что скорее всего). Имелось в виду, что в заголовке страницы указываю следующий параметр
charset=windows-1251
прекрасно.
то есть, страница у тебя в 1251.
Тогда каким образом ты собираешься выводить на ней утф, чтобы он был виден буквами? если тясно сказал браузеру, что тут будет 1251?
Если указано браузеру, что charset=windows-1251. Как вывести на экран иероглифы?
не иероглифы, ты хотел сказать, а текст,чтобы выглядел нормально? ПЕРЕКОНВЕРТИРОВАТЬ его в 1251
 
2 Света:
Мне не надо по русски, мне надо иероглифами. Когда смотрю запись в базе темже пхпадмином, то текст иероглифами, а выводится крякозябрами. может во время запроса происходит конвертация?
 
Serhio
убеждался, что "В самой базе тест виден правильно" через phpmyadmin?
если да, то пойми, что из двух текстов на одном языке выведенных в двух разных кодировках в одном документе хотя бы один будет "кракозябрами".
исходник phpmyadmin сам догадаешься посмотреть? а заодно и мануал по mysql на предмет set names?
 
Serhio
Текст натуральными иероглифами? По-китайски? И русский на той же странице? Всё в utf8 выводить
 
Serhio
Мужчина, во время запроса ничего не проводится, если вы не настроили преобразование кодировок в мускуле. Там ведь можно настроить трансформацию, чтобы он брал текст из одной кодировке, в которой он хранится в бд, а клиенту отдвал в указанной (с версии 4.0, если я не ошибся)

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

-~{}~ 07.07.05 13:56:

Serhio
кстати тебе нужно 2 поставить на составление вопроса.
 
Спасибо за ответы. Попробую.

-~{}~ 07.07.05 14:14:

Установил charset=utf8, но вместо 千夜一夜物語 получаю все теже ??????
 
utf-8 он шлет. поставил. но вместо 千夜一夜物語 получаю все теже ??????
 
Чтож не получилось просто, будем ковырятся дальше. Спасибо за советы.

-~{}~ 07.07.05 15:39:

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

-~{}~ 07.07.05 15:39:

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