Mysql vier chinesischen Zeichen unterstützen

8

Ich kann dieses SQL-Skript nicht ausführen:

%Vor%

Der Fehler ist:

  

FEHLER 1366: Falscher Zeichenfolgenwert: '\ xF0 \ xA0 \ xBC \ xAD' für Spalte 'Name' in Zeile 1   SQL-Anweisung:   INSERT INTO mabase .% Co_de% ( new_table , idnew_table ) WERTE ('2', '

yaroslav prokipchyn 16.07.2013, 15:04
quelle

2 Antworten

8

Ihr gewünschter Charakter, U + 20F2D , befindet sich in der "CJK Unified Ideographs Extension B" Block von Unicodes "ergänzender ideografischer Ebene" und war deshalb in keinem MySQL Unicode-Zeichensatz vor v5.5 verfügbar; seit v5.5 ist es in der utf8mb4 , utf16 , utf16le und utf32 Zeichensätze.

Es ist nicht in den% -Zeichen big5 oder gbk verfügbar.

Warum funktioniert die Codierung utf8 nicht

?

Wie unter Unicode-Unterstützung dokumentiert:

  

Die erste Implementierung der Unicode-Unterstützung (in MySQL 4.1) umfasste zwei Zeichensätze zum Speichern von Unicode-Daten:

     
  • ucs2 , die UCS-2-Codierung des Unicode-Zeichensatzes mit 16 Bits pro Zeichen.

  •   
  • utf8 , eine UTF-8-Codierung des Unicode-Zeichensatzes mit ein bis drei Byte pro Zeichen.

  •   

Diese beiden Zeichensätze unterstützen die Zeichen aus der Basic Multilingual Plane (BMP) von Unicode Version 3.0. BMP-Zeichen haben diese Merkmale:

     
  • Ihre Codewerte liegen zwischen 0 und 65535 (oder U+0000 .. U+FFFF ).

  •   
  • Sie können mit einem festen 16-Bit-Wort codiert werden, wie in ucs2 .

  •   
  • Sie können mit 8, 16 oder 24 Bit codiert werden, wie in utf8 .

  •   
  • Sie reichen für fast alle Zeichen in den Hauptsprachen aus.

  •   

Zeichen, die von den oben genannten Zeichensätzen nicht unterstützt werden, enthalten zusätzliche Zeichen, die außerhalb des BMP liegen. Zeichen außerhalb des BMP werden als ERSATZCHARAKTER verglichen und in '?' konvertiert, wenn sie in einen Unicode-Zeichensatz konvertiert werden.

     

In MySQL 5.6 enthält die Unicode-Unterstützung zusätzliche Zeichen, die neue Zeichensätze erfordern, die einen größeren Bereich haben und daher mehr Platz benötigen. Die folgende Tabelle zeigt einen kurzen Funktionsvergleich der vorherigen und aktuellen Unicode-Unterstützung.

%Vor%      

Diese Änderungen sind aufwärtskompatibel. Wenn Sie die neuen Zeichensätze verwenden möchten, gibt es mögliche Inkompatibilitätsprobleme für Ihre Anwendungen. Siehe Abschnitt 10.1.11, "Upgrade von früher auf die aktuelle Unicode-Unterstützung" . In diesem Abschnitt wird auch beschrieben, wie Tabellen aus utf8 in den Zeichensatz (4 Byte) utf8mb4 konvertiert werden und welche Einschränkungen dabei gelten.

Warum funktioniert die Codierung big5 nicht

?

Wie unter dokumentiert ist, sollten Sie wissen, wann mit dem Big5 chinesischen Zeichensatz arbeiten? :

  

MySQL unterstützt den Big5-Zeichensatz, der in Hongkong und Taiwan (Republik China) üblich ist. MySQL big5 ist in Wirklichkeit die Microsoft-Codepage 950, die dem ursprünglichen big5 -Zeichensatz sehr ähnlich ist.

%Vor%      

Eine Feature-Anfrage zum Hinzufügen von HKSCS Erweiterungen wurde eingereicht. Personen, die diese Erweiterung benötigen, finden möglicherweise den vorgeschlagenen Patch für Bug # 13577 interessant.

Warum funktioniert die Codierung gbk nicht

?

Wie in dokumentiert, welche CJK-Zeichensätze in MySQL verfügbar sind ? :

  

Hier versuchen wir genau zu klären, welche Charaktere in gb2312 oder gbk legitim sind, mit Bezug auf die offiziellen Dokumente. Bitte überprüfen Sie diese Referenzen, bevor Sie gb2312 oder gbk Bugs melden.

     
  • Eine vollständige Liste der gb2312 -Zeichen, geordnet nach der gb2312_chinese_ci -Kollation: gb2312

  •   
  • MySQL gbk ist in Wirklichkeit "Microsoft Codepage 936". Dies unterscheidet sich vom offiziellen gbk für die Zeichen A1A4 (mittlerer Punkt), A1AA (em-Strich), A6E0-A6F5 und A8BB-A8C0 .

  •   
  • Eine Liste der gbk / Unicode-Zuordnungen finden Sie unter Ссылка .

  •   
  • Für die Aufstellung von gbk -Zeichen in MySQL siehe gbk .

  •   
    
eggyal 16.07.2013, 15:54
quelle
0

Diese 2 Befehle unterstützen chinesische Zeichen in Ihrer Datenbank.

  

ALTER DATENBANK CHARAKTER SET 'utf8' COLLATE   'utf8_unicode_ci'

     

ALTER TABLE wird in den Zeichensatz DEFAULT COLLATE konvertiert   DEFAULT

Kurz und einfach.

hoffe es hilft

    
Abhishek Goel 20.12.2014 13:55
quelle

Tags und Links