| FAQ |
| Kalender |
|
|
|
|
#1 | ||
|
|||
|
Medlem
|
Jag har sparat både databasen och tabellerna i utf8_unicode_ci
|
||
|
|
Svara med citat
|
|
|
#2 | ||
|
|||
|
Administratör
|
Är datan korrekt i databasen? Dvs om du ansluter till databasen direkt med utf8 encoding, får du ut läsbar data?
__________________
eldefors.com - Personlig (teknik)-blogg |
||
|
|
Svara med citat
|
|
|
#3 | ||
|
|||
|
Medlem
|
Citat:
$conn = mysql_connect($host, $user, $password); mysql_select_db($db,$conn); mysql_set_charset('utf-8',$conn); För det har jag provat och det funkar inte tyvärr inte, får samma problem. |
||
|
|
Svara med citat
|
|
|
#4 | |||
|
||||
|
Mycket flitig postare
|
I vissa fall går det inte att lita på att datat är UTF-8 även fast det borde vara det.
Jag fick lov att göra egen lösning när jag hade ett liknande problem, men i mitt fall handlade det om data som kom utifrån. Kod:
if (!is_utf8($strang)) $strang=utf8_encode($strang);
function is_utf8($str)
{
$c=0; $b=0;
$bits=0;
$len=strlen($str);
for($i=0; $i<$len; $i++)
{
$c=ord($str[$i]);
if($c > 128)
{
if(($c >= 254)) return false;
elseif($c >= 252) $bits=6;
elseif($c >= 248) $bits=5;
elseif($c >= 240) $bits=4;
elseif($c >= 224) $bits=3;
elseif($c >= 192) $bits=2;
else return false;
if(($i+$bits) > $len) return false;
while($bits > 1)
{
$i++;
$b=ord($str[$i]);
if($b < 128 || $b > 191) return false;
$bits--;
}
}
}
return true;
}
|
|||
|
|
Svara med citat
|
|
|
#5 | ||
|
|||
|
Medlem
|
|||
|
|
Svara med citat
|
| Svara |
|
|