Wie kann ich überprüfen, dass die Marke(™) Charakter richtig eingestellt in meiner Oracle-Datenbank?

Wie kann ich überprüfen, dass die Marke(™) Charakter richtig eingestellt in meiner Oracle-Datenbank?

Ich erwarte, dass Sie gespeichert werden, unter Verwendung der UTF-8-Codierung.

Ich habe einen Wert, gespeichert in einer Salesforce.com Feld, das aussieht wie das von der GUI aus (beachten Sie die Marke Zeichen):

Chuck Norris's Roundhouse Kick™

Ich bin mit Informatica zu vervielfältigen, zu einer Oracle-Datenbank. Meine Datenbank ist den AL32UTF8-Codierung.

, Wie es zeigt sich in SQL Developer

Wenn ich die Abfrage meine Tabelle mit SQL Developer, dem Markenzeichen-symbol zeigt sich als ein Rechteck (schwarzer Rand, weiße Füllung).

, Wie es zeigt sich in HTML

Wenn ich es exportieren von SQL Developer mit dem UTF-8-Codierung in ein HTML-Dokument, und öffnen Sie es in Chrome, das Markenzeichen-symbol nicht angezeigt. Wenn ich es öffnen in IE, es erscheint als Rechteck wieder. In Firefox, es ist ein Rechteck mit 00 in der oberen Hälfte und 99 in der unteren Hälfte. Alle drei Browser interpretieren die HTML-doc mit UTF-8.

, Wie es zeigt sich in text-Editoren

Öffnen der gleichen HTML-doc in Notepad und Notepad++, das Markenzeichen-symbol zeigt sich als ein Rechteck. Wenn ich die Hex-Viewer-plugin für Notepad++ sehe ich die byte-Codierung ist C2 99. Das scheint die richtige Codierung für das Markenzeichen-symbol in UTF-8.

Beim öffnen von Dokument im MS Schreiben, das trademark-Zeichen sieht wie folgt aus: ™.

, Wenn ich den Wert programmgesteuert

Python benutzen, wenn ich den Wert aus der Datenbank, die Marken-Zeichen wird durch '\xbf' -- das umgekehrte Fragezeichen, aber , dass Charakter ist ja nicht richtig codiert, soweit ich das sagen kann, weil es fehlt mindestens ein führendes byte (abhängig von der konkreten Kodierung)

>>> import cx_Oracle
>>> con = cx_Oracle.connect('username', 'password', 'db')
>>> cur = con.cursor()
>>> cur.execute('select * from trademark')
<__builtin__.OracleCursor on <cx_Oracle.Connection to username@db>>
>>> records = cur.fetchall()
>>> records[0][0]
"Chuck Norris's Roundhouse Kick\xbf"

Im Idealfall würde ich mag in der Lage sein, die Daten zu validieren gespeichert in meiner Oracle-Datenbank mit allen oben genannten Methoden. Ich würde dich für jemanden, nur überprüfen, dass das, was ich sah in den Hex-Viewer war genug, von einem "test" 😉

Code 0x99 ist das Markenzeichen-symbol in der Windows-Codepage 1252. Und mehrere andere. Was auch immer Sie finden sich wieder in das dbase war nicht in utf-8 codiert. en.wikipedia.org/wiki/Code_page_1252

InformationsquelleAutor Mike M. Lin | 2011-09-07

Schreibe einen Kommentar