Проблем с показване на коментари

onestarr

Registered
Проблема е следния когато някой потребител напише коментар на клип на кирилица коментара на клипа се показва нормално на кирилица но в секция всички коментари на потребителя излиза нещо такова "Тест"
на латиница си излиза но на бг не ето и снимка http://prikachi.com/images/64/7597064v.png

Името на таблицата в БД е с име comments, а структурата която показва какво е написано е с име comment Тип: text Колация: cp1251_general_ci

А това е php кода който изважда тази информация

PHP:
<div class="box-head-light"><h3><font color="black"><b>Коментари</b></font></a> написани от: <b><?php echo $r['username'] ?></h3></b></div>
		
<div class="box-content">
		
		<?php
			$qco = mysql_query("SELECT * FROM comments WHERE us_id = '".$r['id']."' ORDER BY id DESC");
			if(mysql_num_rows($qco) > 0){
			while($rco = mysql_fetch_array($qco)){
		?>
				<table width="100%" align="center" border="0" cellspacing="2" cellpadding="2">
					<tr>
						<td width="40%" valign="top">
							<?php
								$qvc = mysql_query("SELECT * FROM videos WHERE id = '".$rco['v_id']."' AND active = '1'");
								$rvc = mysql_fetch_array($qvc);
								
								$rvc['img'] = str_replace("3.jpg", "1.jpg", $rvc['img']);
							?>
								<table width="100%" border="0" cellspacing="2" cellpadding="2">
									<tr>
										<td width="10%" class="music_video" style="float: none;"><a href="index.php?p=play&id=<?php echo $rvc['id'] ?>" title="<?php echo $rvc['title'] ?>"><img src="<?php echo $rvc['img'] ?>" width="80" height="60" style="margin: 0;" /></a></td>
										<td width="90%"><a href="index.php?p=play&id=<?php echo $rvc['id'] ?>"><b><?php echo subname($rvc['title'], 32) ?></b></a></td>
									</tr>
								</table>
						</td>
						<td width="10%" valign="top"> </td>
						<td width="50%" valign="top">
							<table width="100%" border="0" cellspacing="2" cellpadding="2">
								<tr>
									<td width="5%" align="center" rowspan="2"><a href="index.php?p=profile&id=<?php echo $r['id'] ?>"><img src="uploads/avatars/small_<?php echo $r['avatar'] ?>" class="avatar" width="48" height="48" /></a></td>
									<td width="95%"><?php echo user($r['id'])." <small>на ".date('d.m.Y в h:i', $rco['date'])."</small>" ?></td>
								</tr>
								<tr>
									<td valign="top"><?php echo text($rco['comment']) ?></td>
								</tr>
							</table>
						</td>
					</tr>
				</table>
				<div class="line"></div>
		<?php
			}
			} else {
				echo "Нямам написани коментари";
			}
		?>
	
	<?php
		} else {
	?>
 
cp1251_general_ci
Е кой ти каза да използваш тая колация... Накъдето и да се обърнеш ще видиш. че трябва да се използва utf8_general_ci (или нещо от сорта)
 
anonimen каза:
cp1251_general_ci
Е кой ти каза да използваш тая колация... Накъдето и да се обърнеш ще видиш. че трябва да се използва utf8_general_ci (или нещо от сорта)

Преди беше с utf8_general_ci но имаше същия проблем сменях няколко колации но същата работа все едно и също си остава и не мога да разбера къде е проблема затова и писах тук
 
teroristd каза:
ползвай utf8_unicode_ci не генерал и няма да имаш никаккви проблеми

Няма промяна промених структурата comment на utf8_unicode_ci но нищо не се промени като напиша коментар в страницата с всички коментари на потребителя пак излизат някви драсканици
 
teroristd каза:
ползвай utf8_unicode_ci не генерал и няма да имаш никаккви проблеми
Аз ползвам навсякъде utf8_general_ci и пак нямам проблеми. То каква е разликата...
п.п. ето я - http://stackoverflow.com/questions/2344118/utf-8-general-bin-unicode
 
anonimen каза:
teroristd каза:
ползвай utf8_unicode_ci не генерал и няма да имаш никаккви проблеми
Аз ползвам навсякъде utf8_general_ci и пак нямам проблеми. То каква е разликата...
п.п. ето я - http://stackoverflow.com/questions/2344118/utf-8-general-bin-unicode

Аз нямам проблем с тази колация аз и нея си ползвам навсякъде в сайта всичко ми излиза на БГ само тук не става не знам защо като напише някой коментара под клипа си излзиа нормален бг коментар а в раздела драсканици не мисля че е от колацията може би нещо друго но не намирам кое точно ще е проблема
 
anonimen каза:
teroristd каза:
ползвай utf8_unicode_ci не генерал и няма да имаш никаккви проблеми
Аз ползвам навсякъде utf8_general_ci и пак нямам проблеми. То каква е разликата...
п.п. ето я - http://stackoverflow.com/questions/2344118/utf-8-general-bin-unicode

Като променя това <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
на това
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

коментарите се показват на БГ но целият сайт става на въпросителни а само тази секция е на БГ доста странно
 
Има три места които може да причиняват това и в целия сайт трябва да са едни и същи.

1. Метатаговете на UTF-8
2. Самите файлове трябва да са енкоднати на UTF-8 without BOM
3. В базата данни на три места
a. Самата база данни
b. Таблиците
c. Полетата

Ако всичко това е изпълнено няма да се появяват такива аномалии :?:.
 
teroristd каза:
Има три места които може да причиняват това и в целия сайт трябва да са едни и същи.

1. Метатаговете на UTF-8
2. Самите файлове трябва да са енкоднати на UTF-8 without BOM
3. В базата данни на три места
a. Самата база данни
b. Таблиците
c. Полетата

Ако всичко това е изпълнено няма да се появяват такива аномалии :?:.

Щом направя метатаговете на UTF-8 целия сайт става на ироглифи някви въпросителни знаци а секцията за коментари става на бг и там всичко е ОК
базата също ми е на UTF-8 само в някой таблици в различни структури има различни колации според това за какво е отнася
 
Човека ти написа стъпките, спази ли ги? Мисля, че файлът ти не е UTF-8 without BOM. Оправи го (Notepad++)
 
Също така ако използваш UTF8 навсякъде, не би трябвало да имаш проблеми никъде, все пак това е идеята на UTF - unicode.
 
djman каза:
Човека ти написа стъпките, спази ли ги? Мисля, че файлът ти не е UTF-8 without BOM. Оправи го (Notepad++)

Спазих ги промених метатаговете на UTF-8 файла го пънах в notepad++ проверих го и е на UTF-8 without BOM
 
При въвеждането на текста, в базата на кирилица ли е или е с йероглифи? Терориста ти написа стъпките, които трябва да направиш, но ако текста и в базата ти е неразбираем не търси проблема основно в тази страница на, която извеждаш а и там където въвеждаш текста. Принципно UTF-8 трябва да ти е оформлението на документа но пробвай и ANSI за всеки случай, че не се знае какво си омешал по енкодингите :)
 
dakata__92 каза:
При въвеждането на текста, в базата на кирилица ли е или е с йероглифи? Терориста ти написа стъпките, които трябва да направиш, но ако текста и в базата ти е неразбираем не търси проблема основно в тази страница на, която извеждаш а и там където въвеждаш текста. Принципно UTF-8 трябва да ти е оформлението на документа но пробвай и ANSI за всеки случай, че не се знае какво си омешал по енкодингите :)

Да и в базата излизат йероглифи
 
Така. Дай кода на страницата където въвеждаш текста във базата. Настрой си базата на utf8_general_ci след което мета тагът на страницата на формата трябва да е с чарсет UTF8 след което самият документ да е запазен като UTF8 и след всичко това направено правилно изтрий записите в базата които са на йероглифен език и пробвай да запишеш нови и ако в самата база са ти на кирилица после вече при извеждането им на страницата ако се променят следвай същата схема с чарсета и сейфането на файла като UTF8 но не пипай базата. :?:
 
mysql_query("SET NAMES UTF8");
Добави си това в конфиг файла или на страницатха директно където добавяш данните Smile Чарсета трябва да ти е UTF-8 базата също трябва да е utf8_general_ci ! Smile Запаметявай си и файловете с UTF-8 енкодинг в Notepad примерно .
 
dakata__92 каза:
mysql_query("SET NAMES UTF8");
Добави си това в конфиг файла или на страницатха директно където добавяш данните Smile Чарсета трябва да ти е UTF-8 базата също трябва да е utf8_general_ci ! Smile Запаметявай си и файловете с UTF-8 енкодинг в Notepad примерно .

Промених метатаговете на
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Добавих този код в config: mysql_query("SET NAMES UTF8");
промених и този на UTF-8
$chars = "SET CHARACTER SET UTF-8"; mysql_query($chars);

Базата ми също е на utf8_general_ci но целия сайт изглежда така http://prikachi.com/images/388/7598388k.png

А в секцията с коментарите си е Ок стоят си на Бг но целия сайт е в въпросителни
 
onestarr каза:
dakata__92 каза:
mysql_query("SET NAMES UTF8");
Добави си това в конфиг файла или на страницатха директно където добавяш данните Smile Чарсета трябва да ти е UTF-8 базата също трябва да е utf8_general_ci ! Smile Запаметявай си и файловете с UTF-8 енкодинг в Notepad примерно .

Промених метатаговете на
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Добавих този код в config: mysql_query("SET NAMES UTF8");
промених и този на UTF-8
$chars = "SET CHARACTER SET UTF-8"; mysql_query($chars);

Базата ми също е на utf8_general_ci но целия сайт изглежда така http://prikachi.com/images/388/7598388k.png

А в секцията с коментарите си е Ок стоят си на Бг но целия сайт е в въпросителни
Те сегашните записи вече са си развалени, не можеш да ги оправиш.
dakata__92 каза:
след всичко това направено правилно изтрий записите в базата които са на йероглифен език и пробвай да запишеш нови

Когато се появят въпросителни - няма възстановяване. Могат да се оправят само йероглифите.

П.п доколкото разбирам са базата данни е добре - трябва да напишеш отново самите файлове.
 

Back
Горе