Frågan 20 okt. 2008 12:33 #1 Hej,
Har byggt ett översättningssystem som använder UTF-8 och det har fungerat jättebra med bl.a. Svenska, Polska och Ryska tecken.
Upptäckte precis ett fel med vissa Ungerska tecken, matar man in en bokstav med dubbla accenter, t.ex. űrlapmezőben , blir det ?rlapmez? .
Alla andra tecken verkar funka, men inte dom som innehåller dubbla accenter.
När databasen öppnas kör jag:
mysql_query("SET NAMES utf8") or die(mysql_error());
mysql_query("SET CHARACTER SET utf8") or die(mysql_error());
När texten sparas:
$cont_text = safesql($_POST['cont_text']);
Safesql:
function safesql($value){
$value = trim($value);
if(get_magic_quotes_gpc()){
$value = stripslashes($value);
}
// check if this function exists
if(function_exists("mysql_real_escape_string")){
$value = mysql_real_escape_string($value);
}else{
// for PHP version < 4.3.0 use addslashes
$value = addslashes($value);
}
return $value;
}
Vad kan tänkas vara fel?
Kollar jag i databasen så finns "?" med, så felet sker när texten sparas.
drew Medlem sedan mars 2007 845 inlägg Vad har du för teckenuppsättning i sidans header? Är det utf-8 där?
drew skrev:
Vad har du för teckenuppsättning i sidans header? Är det utf-8 där?
Japp, kör UTF-8 rakt igenom. Som sagt, språk som Svenska, Engelska, Polska, Tyska, Ryska, Portugisiska fungerar klockrent, men just tecken med dubbla accentern sparas som "?".
drew Medlem sedan mars 2007 845 inlägg mysql_query("SET CHARACTER SET utf8") or die(mysql_error());
CHARACTER_SET med ett underline brukar jag använda. Aldrig testat utan.
Testade dubbla accenter på en av mina sidor och där fungerade dom. Jag har iofs satt till utf-8 redan när jag skapade databasen.
drew skrev:
Jag har iofs satt till utf-8 redan när jag skapade databasen.
Jo, det gör jag med.
Men jag ska testa det här, återkommer strax.
drew skrev:
CHARACTER_SET med ett underline brukar jag använda. Aldrig testat utan.
Är du säker?
Testade nu med:
mysql_query("SET CHARACTER_SET utf8") or die(mysql_error());
och får
Unknown system variable 'CHARACTER_SET'
Nu hittade jag felet.... hade råkat skapa databasen med kollationering latin_1, så det var inte så märkligt att det inte funkade.
Konstigt dock att det funkar med hela det Kyrilliska alfabetet hittills?