INSERT INTO MySQL VIA PHP a ♥ -> ?

  • Antworten:6
Jakob N.
  • Forum-Beiträge: 282

29.06.2014, 13:03:30 via Website

Hallo Leute :)

Ich habe folgendes Problem: Wenn ich in meiner App in eine EditText ein Herz eingebe (über die normale Tastatur, gibt es auf der zweiten Seite bei den Symbolen so ein Herz ♥ (weiß nicht ob das nur bei Samsung Handys so ist), wird in der Datenbank nur ein ? einefügt.

Die Tabellen meiner Datenbank (MySQL) haben auch die "utf8mb4_general_ci" Kodierung eingestellt.

Bevor ich das INSERT im PHP-File absende fürche ich auch folgendes Statement aus:

mysql_query("SET NAMES = utf8;";); <- sry der macht hier ein Smiley drauß

Normale Sonderzeichen und Umlaute werden in der Datenbank richtig ingeserted. Ich hätte gerne, dass das Herz auch als ♥ ingeserted wird.

Bitte um Eure Hilfe.

LG Jakob

— geändert am 29.06.2014, 13:06:01

LG Jakob

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.06.2014, 19:30:51 via Website

Das zeichen ist halt nicht im UTF8 Zeichensatz vorhanden.
Deswegen wird es acuh nicht angezeigt

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Jakob N.
  • Forum-Beiträge: 282

30.06.2014, 15:19:43 via Website

Hallo!

Markus B.

unicode ist dein Freund :)

Wie genau meinst du das Markus?

LG

LG Jakob

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

30.06.2014, 15:50:03 via Website

Du musst als charset/Zeichensatz statt urf8 unicode nehmen.
Und zwar überal im skript.

mysql_query("SET NAMES = utf8;"

Durch unicode ersetzen.
PS: DB sollte auch unicode unterstützen.
Vlt mal eine Testtabelle generieren.

— geändert am 30.06.2014, 15:50:49

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Jakob N.
  • Forum-Beiträge: 282

30.06.2014, 17:19:55 via Website

Ist nicht UTF-8 ein "Unicode" Zeichensatz??

LG Jakob

LG Jakob

Antworten
Jakob N.
  • Forum-Beiträge: 282

30.06.2014, 18:29:55 via Website

Habe das Problem jetzt gelöst!

Im PHP-File muss nach dem Connectionaufbau "mysql_query("SET NAMES 'utf8');" geschrieben werden. In MySQL kann man die Kodierung der DB auf "utf8_general_ci" lassen.

Wichtig ist noch (deswegen funktionierte es bei mir nicht), dass man in der Android-App dem Objekt HttpPost (bei mir im Code mit dem Namen post) die Zeichenkodierung mitgibt:

post.setEntity(new UrlEncodedFormEntity(pairs, &quot;UTF-8&quot;));

LG Jakob

LG Jakob

Antworten