Hallo
Vor 2 Jahren hatte ich Umlautproblene beim Excel-Export. Jetzt im PHP/MySql und die damaligen Tipps helfen nicht weiter.
Ich habe Daten auf dem
internen Server und welche
extern im Internet. Die Umlaute auf dem internen Server kommen, die externen nicht. Die Ausgabe ist auf derselben Seite, und doch so unterschiedlich. Habe verschiedene Versionen ausgetestet, nichts bringt was. Immer sind die Umlaute von der internen DB gut und die vom externen Server nicht. In der DB sind an beiden Orten die Umlaute uncodiert erfasst, also öäü
Wie kann ich die Umlaute vom externen Server richtig anzeigen?
PHP-Code:
$link = mysql_connect("localhost","user","pw");
mysql_select_db("db",$link);
$link_extern = mysql_connect("t.mysql.db.xxx.yyy","user","pw");
mysql_select_db("db",$link_extern);
$query = "SELECT name FROM sheet
where name LIKE '$a'
order by name";
$result = mysql_query($query,$link);
$num = mysql_num_rows($result);
for ($i = 0; $i < $num; $i++)
{
$row = mysql_fetch_array($result);
echo"$row[name]";
}
$query_extern = "SELECT Name FROM sheetextern
where Name LIKE '$a'
order by Name";
$result_extern = mysql_query($query_extern,$link_extern);
$num_extern = mysql_num_rows($result_extern);
for ($i = 0; $i < $num_extern; $i++)
{
$row_extern = mysql_fetch_array($result_extern);
addslashes($Name1 = $row_extern['Name']); echo"$Name1";
utf8_encode($Name2 = $row_extern['Name']); echo"$Name2";
$Name3=htmlspecialchars(utf8_encode($row_extern['Name'])); echo"$Name3";
utf8_decode($Name4 = $row_extern['Name']); echo"$Name4";
}
Habe auch die DB angeschaut mit SHOW VARIABLES LIKE 'character_set%' und die sind auf utf8 gesetzt.
Code:
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/local/share/mysql/charsets/
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir D:\xampp\mysql\share\charsets\
und der Header im HTML
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />