2016-04-08 13 views
0

Ich habe eine MySql-Datenbank. Die Tabellen darin sind mit DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci definiert. Die Daten in den Tabellen scheinen jedoch falsch codiert zu sein.MySql JSON Codierung Problem

SELECT json_object('x', textfield) AS test FROM MyTable LIMIT 1;

+-----------------------------+ 
| test      | 
+-----------------------------+ 
| {"x": "This isn’t right"} | 
+-----------------------------+ 

Wie konvertiere ich den Text in der Tabelle auf der rechten Codierung?

Antwort

0

Mojibake

  • Die Bytes, die Sie in dem Client korrekt in UTF-8 codiert (gut).
  • Sie haben wahrscheinlich standardmäßig mit SET NAMES latin1 (oder set_charset('latin1') oder ...) verbunden. (Es sollte utf8 sein.)
  • Die Spalte in den Tabellen möglicherweise CHARACTER SET utf8 oder nicht gewesen sein, aber es sollte das gewesen sein. (Sie sagen, sie waren.)

Was ist Ihr Client? Wenn es das "mysql commandline tool" ist (wie es scheint), führen Sie nach dem Verbinden SET NAMES utf8 aus. Wenn die isn’t als isn?t ausgegeben wird, siehe my blog