проблемы с utf-8

antonim

Новичок
проблемы с utf-8

Добрый день. Впервые решил испльзовать utf-8. Проблема с отображением русского текста решилась таким образом:
header("Content-Type: text/html; charset=utf-8");

Возникла проблема с русскими символами при загрузке формы через ajax.

вот форма:



PHP:
<SCRIPT type="text/javascript">
$("#sortable").sortable();
$("#sortable").disableSelection();
</SCRIPT>
<div id="fl_win">
	<div class="head"><img src="images/red_menu.png"><a href="javascript:close();"><img src="images/close.png"></a></div>
	<form>
		<input type="text" id="name" value="Имя" style="width:203px;float:left;">
		<input type="button" id="ok" value="Сохранить имя" disabled="disabled">
		<input type="button" id="add" value="add новый пункт">
		<input type="button" id="del" value="Удалить пункт" disabled="disabled">
		<ul id="sortable">
		</ul>
		<input type="button" value="Сохранить" style="width:205px; clear:both;">
	</form>
</div>
сохранен код в utf-8 странно :( не знаю что подумать, но отображается "Имя", "Сохранить имя" и т.д. криво :( :(

-~{}~ 24.10.09 20:43:

возникла еще одна проблема с utf-8 при переносе сайта на сервер.

На локальном все ок, но на сервере не корректно отображается русский текст, доставаемый с БД. В самой бд и типа utf-8 и записан там он в в utf-8. Какая-то напасть прям :( :(
 

dimagolov

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

antonim

Новичок
Автор оригинала: dimagolov
отображаются может быть и криво, а в реальности они в какой кодировке попадают в браузер, это ты определить можешь?
в всплывающем окне кнопки вобще не понятно в какой. Похоже, что каракули которые получены путем отображения 1251 в utf-8

а во втором случае где выводиться из базы, выводятся в 1251 точно т.к. при смены кодировке в браузере они становятся читабельны.
 

dimagolov

Новичок
а во втором случае где выводиться из базы, выводятся в 1251
тебе не кажется, что ты что-то делаешь неправильно? раз данные приходят из базы в 1251, а отдать клиенту надо в утф-8, то их нужно перекодировать, разве нет? а еще лучше перевести базу в утф-8, так как данные от клиента будут приходить в утф-8, а сохранить их без потерь в 1251 будет невозможно.

http://phpfaq.ru/charset
 

antonim

Новичок
Автор оригинала: dimagolov
тебе не кажется, что ты что-то делаешь неправильно? раз данные приходят из базы в 1251, а отдать клиенту надо в утф-8, то их нужно перекодировать, разве нет? а еще лучше перевести базу в утф-8, так как данные от клиента будут приходить в утф-8, а сохранить их без потерь в 1251 будет невозможно.

http://phpfaq.ru/charset
В том то и дело!! Что БД в utf-8 :( То же самое на локальном работает нормально.
 

dimagolov

Новичок
antonim, ты ссылки читай, да...

а то противоречишь сам себе:
во втором случае где выводиться из базы, выводятся в 1251
учитывая
То же самое на локальном работает нормально.
то дело в различных дефолтных кодировках в локалке и на хостинге и полном игнорировании этого вопроса в соединении с БД.
 

antonim

Новичок
Автор оригинала: dimagolov
antonim, ты ссылки читай, да...

а то противоречишь сам себе:


учитывая

то дело в различных дефолтных кодировках в локалке и на хостинге и полном игнорировании этого вопроса в соединении с БД.
Вы оказались правы, все исправил, спасибо!

Но теперь возникла новая проблема буквы "ш" и "И" криво отображаются

море инфы по этому поводу, но никакого толку :(

вот например: setlocale(LC_ALL, 'ru_RU.UTF-8'); вообще 0 на массу

Как решить не знаю :( может кто подскажет?
 

LeoKee

Новичок
а ты погляди SHOW VARIABLES еще разок

-~{}~ 31.10.09 20:33:

и mysql_query("SET CHARACTER SET utf8")
 

antonim

Новичок
после mysql_query("SET CHARACTER SET utf8")

появились вообще какая-то непонятная кодировка

а с помощью SHOW VARIABLES на сколько я понял переделывают БД в utf-8 но она у меня и так в utf-8 или SHOW VARIABLES для чего-то другого ты хотел мне подсказать?
 

dimagolov

Новичок
SHOW VARIABLES на сколько я понял переделывают БД в utf-8 но она у меня и так в utf-8 или SHOW VARIABLES для чего-то другого
antonim, ты читать маны упорно не желаешь? или понять не можешь?
 

antonim

Новичок
Автор оригинала: dimagolov
antonim, ты читать маны упорно не желаешь? или понять не можешь?
SHOW VARIABLES оказался к вашему сведению совершенно не причем, справился с проблемой, всем спасибо кто хотел ПОМОЧЬ
 

antonim

Новичок
Автор оригинала: Beavis
antonim
расскажи как справился
после mysql_connect , но перед mysql_select_db пишу: mysql_query('SET NAMES utf8');

Сначала сбило с толку что все символы выводятся вобще иероглифами, но при перезаписи данных в базу все отображается нормально.
 
Сверху