2016-11-24 3 views
0

Ich habe ein Formular auf meiner MVC-Website, die es dem Benutzer ermöglicht, Emoji-Zeichen als Teil des gesendeten Textes einzugeben.MySQL und ASP MVC - Speichern von Emoji-Zeichen

Meine MySQL 5.6 Datenbank ist in erster Linie auf UTF8 gesetzt, sondern auf dem Tisch, die diese Daten habe ich das Feld und Tisch zu decken akzeptiert:

Zeichensatz: utf8mb4

Sortierungs: utf8mb4_unicode_ci

jedoch Wenn ich die Daten einfüge, kann ich sehen, dass das Emoji-Zeichen an der Einsprungstelle in die Tabelle ????? codiert. Alle anderen Standardtexte bleiben erhalten.

Fehle ich etwas? Ich habe Artikel wie diese gesehen, die ich verwendet habe, um mich zu führen: http://blog.arkency.com/2015/05/how-to-store-emoji-in-a-rails-app-with-a-mysql-database/

Jede Hilfe würde sehr geschätzt werden!

Dank

+1

Mögliches Duplikat [Wie man utf-8 mb4 Zeichen (emoji in ios5) in mysql einfügen?] (Http://stackoverflow.com/questions/7814293/how-to-insert-utf-8-mb4-characteremoji-in-ios5-in- -mysql) –

+0

@JamesP danke. Ein bisschen zwei Dinge tatsächlich. Die db wird in Google Cloud sql gehostet und 'character-set-server' wird in der Konsole bei google eingestellt. – scgough

+0

Bitte geben Sie 'SHOW CREATE TABLE' an. –

Antwort

0
ALTER TABLE mytable charset=utf8mb4, MODIFY COLUMN textfield1 VARCHAR(255) CHARACTER SET utf8mb4,MODIFY COLUMN textfield2 VARCHAR(255) CHARACTER SET utf8mb4; 

zuerst die Verbindung Codierung utf8mb4 gesetzt und dann den Charakter der Datenbank ändern Satz und Sortier es: -

SET NAMES utf8mb4; 
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; 

Als nächstes werden wir die relevanten Tabellen zu utf8mb4 konvertieren müssen/utf8mb4_unicode_ci (Sie müssen dies für jede Tabelle laufen): -

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 

(Ersetzen table_name mit dem Namen der Datenbanktabelle.)

Schließlich müssen wir den Zeichensatz und Sortierung für die Spalte (n) aktualisieren: -

ALTER TABLE table_name CHANGE column_name column_name VARCHAR(140) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL; 

Based on linky from here, credit to my carter