| 
 
   
   
   
   
   
  | 
 	
  |  | 
    
     | 
       
        | Das heitere Umlauteproblem... | Beitrag Nr.:   1          |  Ich verzweifel grad mal wieder....
 
 Folgendes Szenario:
 
 Serversprache: UTF-8
 Tabellenkollation: UFT-8
 Spaltenkollation: UFT-8
 PHP-Datei-Charset: UTF8
 
 Eintrag in DB: Lustige Zeichen bei Umlaufen *seufz*
 
 Frage: Was hab ich übersehen...
 
 Selbst ne Umgehung klappt nicht so, wie ichs mir vorstelle:
 
 
 
  | 
   
    
     | code: |  
     | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
 | //Überschrift und Text
$subject = "Herzlichen Glückwunsch zum Gebutrstag";
$body = "Wir wollten dir zum Geburtstag ein kleines Präsent überreichen und hoffen,$Bdass es dir bei uns gefällt!!$B$BWir wünschen dir alles Gute und freuen uns auf weitere geminsame Spielstunden mit Dir!";
//Mail INSERT      //10 Gold -- Geschenk
$mail_insert="INSERT INTO corelith_characters.mail SET 
id = '$id_plus1', 
messageType = '0', 
stationery = '61', 
mailTemplateId = '0', 
sender = '69',
receiver = '$reciver', 
subject = '$subject', 
body = '$body', 
has_items = '1', 
expire_time = '$timestamp_delete', 
deliver_time = '$timestamp_deliver', 
money = '100000',  
cod = '0', 
checked = '$checked' ";
$send_in = mysqli_query($db_chars, $mail_insert);
		  
$do_utf8="UPDATE `corelith_characters.mail` SET 
              `subject` = REPLACE(`subject`,"ß", "ß"), 
              `subject` = REPLACE(`subject`, "ä", "ä"), 
              `subject` = REPLACE(`subject`, "ü", "ü"), 
              `subject` = REPLACE(`subject`, "ö", "ö"), 
              `subject` = REPLACE(`subject`, "Ä", "Ä"), 
              `subject` = REPLACE(`subject`, "Ü", "Ü"), 
              `subject` = REPLACE(`subject`, "Ö", "Ö"), 
              `subject` = REPLACE(`subject`, "€", "€"),
              
              `body` = REPLACE(`body`,"ß", "ß"), 
              `body` = REPLACE(`body`, "ä", "ä"), 
              `body` = REPLACE(`body`, "ü", "ü"), 
              `body` = REPLACE(`body`, "ö", "ö"), 
              `body` = REPLACE(`body`, "Ä", "Ä"), 
              `body` = REPLACE(`body`, "Ü", "Ü"), 
              `body` = REPLACE(`body`, "Ö", "Ö"), 
              `body` = REPLACE(`body`, "€", "€")
			  
WHERE id LIKE '$id_plus1'";
			  
$utf8_in = mysqli_query($db_chars, $do_utf8); |  |  
 
 
 In die DB hauts mir ständig lustigen Zeichen anstatt die Umlaute....
 Übrigens funktionieren htmlspecialchars und htmlentities bei den Srings leider auch nicht und auch mysqli_set_charset($db_chars, "utf8"); direkt nach der DB klappt nicht *seufz*
 
 __________________
 
 
 |  |  
  |  08.02.2021 14:18 |          |  | 
 | 
 	
  |  | 
    
     | ähmmm danke, aber janein, das ganze is en bisschen komplexer...:
 
 pdo geht schonmal bei dem gameserver nicht, weil die core dann ärger macht.. kp warum...
 also normaler connect, und dann der insert is auch bissel größer:
 
 
 
 
  | 
   
    
     | code: |  
     | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
 | //Datenbank_CHARS
$db_chars = mysqli_connect("localhost", "blubber", "blahhhhh", "corelith_characters");
//id aus characters.mail
$id_out = "SELECT * FROM corelith_characters.mail";
$result_id = mysqli_query($db_chars, $id_out);
while ($ds = mysqli_fetch_object($result_id)) {
    $res_id = $ds->id;
}
$id_plus1 = $res_id + 1;
//Überschrift und Text
//String-Encoding UTF8
$subject = "Herzlichen Glückwunsch zum Geburtstag";
$body = "Wir wollten dir ein kleines Zufalls-Geburtstagspräsent zukommen lassen, nebst ein bisschen Geld, und hoffen, dass es dir bei uns gefällt!!\r\n\nAlles Gute zum Geburtstag!!\r\n\nWir freuen uns auf eine noch lange, geminsame Spielzeit mit Dir!\r\n\n\nDein Corelith-Team";
//Mail INSERT   
$mail_insert="INSERT INTO corelith_characters.mail SET 
id = '$id_plus1', 
messageType = '0', 
stationery = '61', 
mailTemplateId = '0', 
sender = '69',
receiver = '$reciver', 
subject = '$subject', 
body = '$body', 
has_items = '1', 
expire_time = '$timestamp_delete', 
deliver_time = '$timestamp_deliver', 
money = '100000',  
cod = '0', 
checked = '$checked' ";
$send_in = mysqli_query($db_chars, $mail_insert); |  |  
 
 
 hab das derzeit umgeschrieben, damits ohne ü's und Co eght... aber würd mcih trotzdem interessieren, wie ich Umlaute in die DBs bekomme...
 
 __________________
 
 
 |  |  
  |  09.02.2021 20:48 |          |  | 
 | 
 	
  | 
    
     | haumi   Boardbetreiber
 
 
   [meine Galerie]
 
 Dabei seit: 06.06.2009
 Beiträge: 3.442
 Herkunft: NRW
 Postid:  17263
 
  |  | 
    
     | Versuche das bitte mal.
 Statt:
 
 
 
  | 
   
    
     | code: |  
     | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
 | $mail_insert="INSERT INTO corelith_characters.mail SET 
id = '$id_plus1', 
messageType = '0', 
stationery = '61', 
mailTemplateId = '0', 
sender = '69',
receiver = '$reciver', 
subject = '$subject', 
body = '$body', 
has_items = '1', 
expire_time = '$timestamp_delete', 
deliver_time = '$timestamp_deliver', 
money = '100000',  
cod = '0', 
checked = '$checked' ";
$send_in = mysqli_query($db_chars, $mail_insert); |  |  
 
 
 nimm mal:
 
 
 
 
  | 
   
    
     | code: |  
     | 1:
2:
 | $statement = $pdo->prepare("INSERT INTO corelith_characters.mail (id,messageType,stationery,mailTemplateId,sender,receiver.subject,body,has_items,expire_time,deliver_time, money,cod.checked) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
$statement->execute(array($id_plus1,0,61,0,69,$reciver,$subject,$body,1,$timestamp_delete,$timestamp_deliver,100000,0,$checked)); |  |  
 
 und in der class_db_mysql.php ersaetze:
 
 
 
  | 
   
    
     | code: |  
     | 1:
 |  	  $pdo = new PDO('mysql:host=localhost;dbname='.$sqldb,$sqluser,$sqlpassword);  |  |  
 durch:
 
 
 
  | 
   
    
     | code: |  
     | 1:
2:
3:
4:
5:
6:
7:
 | $pdo = new PDO(
'mysql:host=localhost;dbname='.$sqldb,
$sqluser,
$sqlpassword,
[PDO::MYSQL_ATTR_INIT_COMMAND=>"set names utf8"]
);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); |  |  
 
 Bei mir haben ich damit keine Ümlautprobleme mehr.
 
 LG
 haumi
 
 __________________
 
 Gelassen das hinnehmen, was nicht zu ändern ist, 
engagiert angehen was man gestalten kann.
 
 |  |  
  |  10.02.2021 07:48 |          |  | 
 
 
  |  |    |  Views heute: 34.402 | Views gestern: 54.447 | Views gesamt: 97.937.446
 
 |