Forum » TYPO3 » Ogólne
Tematy bez nowych odpowiedzi

utf-8 i różne ustawienia MySQL


Autor Wiadomość
Napisane: 22.12.2009 [09:30]
biesior
admin
Twórca tematu
zarejestrowany: 20.03.2008
Posty: 1356
(post dotyczy wątku w FAQ: http://forum.typo3.pl/faqbaza-wiedzy/post/instalacja-1/481.html)

wieslawg napisał/a

Wprowadziłem ale niestety bez zmian.

Typo3 było prawidłowo ustawione na samym początku:
zgodnie ze wskazaniami na Forum miał [SYS][UTF8filesystem] = 1, i wszystko było w porządku. Baza jest ta sama. Nie pamiętam jak wyglądała sprawa [SYS][setDBinit].


Jak znam życie powinieneś w takim razie użyć latin1, choć to tylko domysły. Spróbuj użyć takiej linijki (zamiast utf8!) w typo3conf/localconf.php

PHP
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET CHARACTER SET latin1;'.chr(10).'SET NAMES latin1;'.chr(10).'SET SESSION character_set_server=latin1;';


jeśli to nie zadziała musisz odnaleźć swoje poprawne kodowanie połączenia, skorzystaj np. z phpMyAdmin'a (w wersji powyżej 3.x) - tam masz możliwość zmieniać kodowanie dla aktualnego połączenia, sprawdź jak zachowują się znaki narodowe np dla kolumny title w tabeli pages lub tt_content. Przełączając po kolei "podejrzewane" kodowanie w końcu trafisz...

Jeśli to nie przyniesie skutku skontaktuj się z administratorem i poproś go żeby Ci podał poprawną wartość. Dodatkowo jeśli robiłeś export/import całej bazy możliwe jest, że obie operacje były przeprowadzone z zastosowaniem różnych kodowań co w rezultacie zaowocowało zupełnym popsuciem kodowania, w tej sytuacji musisz ponowić te operacje z jednoczesnym upewnieniem się, że kodowania są OK.

Jeśli nie masz pewności i szukasz odpowiedniego zestawu testuj export/import tylko na niewielkich tabelach, żeby nie tracić czasu, zazwyczaj 'pages' ma niewielkie rozmiary, jako, że samych stron najczęściej nie ma zbyt wiele a jednocześnie pojawiają się tam znaki narodowe. Używaj tego samego oprogramowania do exportu i importu...

PS. Twoja odpowiedź w FAQ została usunięta i przeniesiona do tego wątku.

Mój Muminek, moja Ula odeszła icon_frown.gif [']
Napisane: 22.12.2009 [10:09]
biesior
admin
Twórca tematu
zarejestrowany: 20.03.2008
Posty: 1356
Ten prosty skrypt przeleci kilka najczęściej występujących opcji dla kodowania połączeń i wyświetli tytuły do porównania...

PHP
<?php
	/*
	 * Skrypt do odnajdywania poprawnych kodowań połączenia z DB
	 * Zapisz go w katalogu root instalacji TYPO3 i wywołaj w przeglądarce 
	*/
 
	//ustaw kodowanie dla dokumentu HTML
	header('Content-Type: text/html; charset=utf-8'); 
	include('typo3conf/localconf.php');
	$connection = mysql_connect($typo_db_host, $typo_db_username, $typo_db_password) or die('no connection');
	$db = mysql_selectdb($typo_db);
 
	// Testuj różne kodowania połączenia z DB, dopisz więcej "podejrzanych" w razie potrzeby
	$testArray = array('auto', 'utf8', 'latin1', 'latin2');
	foreach($testArray as $set){		
		if ($set != 'auto'){
			print "<b>$set</b><hr />";
			mysql_query('SET CHARACTER SET '.$set); mysql_query('SET NAMES '.$set); mysql_query('SET SESSION character_set_server='.$set);
		} else {
			print "<b>auto - czyli domyślnie tak jak pracuje serwer</b><hr />";
		}
		$titles = mysql_query("SELECT title FROM pages WHERE 1");
		while ($row = mysql_fetch_assoc($titles)){
			print $row['title'].', ';
		}
		print '<hr />';
	}
?>


Mój Muminek, moja Ula odeszła icon_frown.gif [']