2016-10-28 7 views
1

Ich werde verrückt. Bitte helfen Sie.Wie füge ich einen String mit Sonderzeichen in MySQL ein?

Ich habe ein Formular mit einer Texteingabe. Dies wird in meine SQL-Textspalte eingefügt. Manchmal gibt ein Benutzer ein unbekanntes Zeichen ein, das die Einfügung unterbricht.

Zum Beispiel eine, die ich gerade gefunden habe, ist Topkapı, die eine Stadt in der Türkei ist. Sie werden das letzte Zeichen bemerken. Beim Einfügen führt dies zu einem Datenbankfehler:

Error Executing Database Query. Incorrect string value: '/xC4/xB1 and...' for column 'country_description' at row 1

Gibt es eine einfache Methode, um diese Zeichen zu entfernen oder sie zu umgehen? Ich benutze cfqueryparam und versuchte HTMLEditFormat, CFSavecontent usw. ohne Erfolg.

+0

Haben diese Sonderzeichen zu einem späteren Zeitpunkt zurückgerufen werden müssen? –

+0

Nicht wirklich. Zum Beispiel eines, das ich gerade gefunden habe, ist "Topkapı", eine Stadt in der Türkei. Sie werden das "ı" bemerken. Ich bin wirklich am Ende meines Verstandes, also ist es mir egal, ob ich das "ı" komplett verliere. Dies ist nur ein Beispiel. Der Benutzer kann eine sehr lange Zeichenfolge mit Tonnen von diesem Zeug dort eingeben. Ich möchte es nur loswerden, damit mein Insert nicht bricht. –

+1

Pausen wie? Welche Fehlermeldung erhalten Sie? – Leigh

Antwort

2

EncodeForHTML() behebt dieses spezielle Problem nicht, wenn Sie beispielsweise HTML aus TinyMCE einfügen.

Was behoben wurde, war das Ändern der Sortierung zu utf8mb4. Sie können dies in Workbench tun, indem Sie die Kopfzeile erweitern. Es ist standardmäßig minimiert.

  1. Sichern Sie Ihre Tabelle.
  2. Gehen Sie zu "Alter Tabelle".
  3. Klicken Sie auf die Pfeile oben rechts des Fensters Expand the header

  4. Wählen utf8mb4 aus dem Sortierungs Dropdown-Menü.

Change the Collation

  1. Klicken Sie auf "Übernehmen"
+0

Schöne Antwort und +1 für die Erinnerung an immer zuerst sichern! – Leigh

3

Hier sind Ihre Möglichkeiten meiner Meinung nach:

  1. Wenn Sie Coldfusion verwenden 10 oder höher, versuchen EncodeForHTML() verwenden.
  2. Bestätigen Sie Ihre Benutzeroberfläche, um nur US- und englische Zeichen, Zahlen usw. zu akzeptieren.
  3. Ändern Sie den Spaltentyp in MySQL in VARCHAR (n) CHARSET utf8.

Hoffe, das hilft.

+1

Sie können diese Antwort vielleicht noch weiter verbessern, indem Sie Beispiele hinzufügen, wie Sie die aufgelisteten Dinge erledigen können: – thesecretmaster

Verwandte Themen