Kann ich in einem varchar Feld versehentlich gespeichert internationale Zeichen wiederherstellen?
-
04-07-2019 - |
Frage
Mein Mandant hat eine alte MS SQL 2000-Datenbank, die varchar (50) Felder verwendet, Namen zu speichern. Er versuchte, diese Datenbank zu verwenden, um einige Daten zu erfassen (über ein Web-Formular). Einige der form Füllstoffe sind aus anderen Ländern, und die varchar Felder gingen nussig, wenn einige dieser Leute ihre Namen eingetragen. Ist es möglich, irgendwie die Daten wiederherzustellen? Vielleicht durch erraten, was sollte das Zeichen auf der Grundlage, was es zu lösen in ASCII / varchar und das Land der Person aus ist? Einige der Daten:
Name / Land / First oder Nachname?
JIA ™ Ã / CZE / F
Torbjörn / FIN / F
Huszár / HUN / L
Jürgen / DEU / F
Müller / CHE / L
Bumbálková / CZE / L
Doležal / CZE / L
Loïc / DEU / L
By the way, das Web-Formular angegebenen diesen Content-type:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Lösung
aus dem 5. Beispiel arbeiten.
à ist ascii # 195 (C3). ¼ ist ascii # 188 (BC).
Ich würde vermuten, dass Müller Müller sein soll.
Wenn die UTF-8, basierend auf http://en.wikipedia.org/wiki/UTF-8#Description
Wir haben C3 = BC 1100 0011 1011 1100
Die Anwendung der UTF-8-Zuordnung:
(110) 00011 (10) 11 1100
0000 0000 1111 1100
00FC, die Unicode ü
U + 00FC (siehe http://en.wikipedia.org/wiki/Latin_characters_in_Unicode)
Es scheint mir, dass Sie programmatisch durch diese funktionieren könnte.
Nun löst das erste Beispiel:
JIA ™ ã war eigentlich JIA ™ Ã (Das letzte Zeichen nicht gezeigt).
die Ji Ignorieren, was richtig ist,
C5 99 c3 AD
(110) 0 0101 (10) 01 1001 (110) 0 0011 (10) 10 1101
0159 00ED
rI
So ist der Name: Jiří. Wikipedia sagt, dass spezielle r tschechischen und so ist das i. Außerdem, wenn ich Jiří google ( http://www.google.com/search?q=Ji%C5%99%C3%AD&ie=utf-8&oe=utf-8 ) bekomme ich viele Hits. Wir sind auf einen Gewinner hier.
Das zweite Beispiel, Torbjörn, ordnet schön zu Torbjörn, die überzeugend klingt.
IMHO gibt es keinen großen Bedarf an menschlicher Kontrolle dieser, scheinen sie gerade zu arbeiten.
Andere Tipps
Die russische Post hat es geschafft. Hat jemand das Bild speichern, bevor sie verschwunden?
Sie müssen im Grunde ist es durch libiconv stecken, um es zu UTF8.
Eine vollständige Liste der entsprechenden Zeichensätze wird auf Ihre Anwendung ab, aber Sie können einige Vermutungen basierend auf dem Ländercode machen. Beginnen Sie mit dieser Seite auf WikiPedia .
. Achtung: Sie einen Menschen brauchen, um zu überprüfen jeder Umwandlung
Weitere Richards Kommentare: Wenn die Web-Seite mit dem Formular gibt einen Zeichensatz (zB iso-8859-1 == Unicode) & Codierung (zB UTF-8) dann ein Standard-Browser mit Formulardaten übermitteln soll, dass Zeichensatz und Codierung. Wenn Ihre Web-Seiten Unicode angegeben, dann should't Sie mit gelegentlichem Microsoft-Codepages in den Daten bewältigen müssen -. Es alle Unicode sein sollte