Как я могу проверить, что символ торговой марки (™) установлен правильно в моей базе данных Oracle?
Я ожидаю, что он будет сохранен с использованием кодировки UTF-8.
У меня есть значениехранится в поле Salesforce.com, которое выглядит так из графического интерфейса пользователя (обратите внимание на символ торговой марки):
Chuck Norris's Roundhouse Kick™
Я использую Informatica для репликации его в базу данных Oracle.Моя база данных настроена на использование кодировки AL32UTF8.
Как это отображается в SQL Developer
Когда я запрашиваю свою таблицу с помощью SQL Developer, символ торговой марки отображается как прямоугольник (черная рамка, белая заливка).
Как это отображается в HTML
Когда я экспортирую его из SQL Developer, используя кодировку UTF-8, в документ HTML и открою его вChrome, символ торговой марки не появляется вообще.Когда я открываю его в IE, он снова выглядит как прямоугольник.В Firefox это прямоугольник с 00
в верхней половине и 99
в нижней половине.Все три браузера интерпретируют HTML-документ, используя UTF-8.
Как это отображается в текстовых редакторах
При открытии одного и того же HTML-документа в Notepad и Notepad ++ символ торговой марки отображается в виде прямоугольника.Если я использую плагин Hex Viewer для Notepad ++, я вижу кодировку байтов C2 99
.Кажется, это правильная кодировка для символа торговой марки в UTF-8 .
Когда я открываю документ в MS Write, символ торговой марки выглядит так: ™
.
Когда я получаю значение программно
Используя Python, когда я получаю значение из базы данных, символ товарного знака заменяется на '\ xbf' - перевернутый знак вопроса ,но этот символ даже не правильно закодирован, насколько я могу судить, поскольку в нем отсутствует хотя бы один начальный байт (в зависимости от конкретной кодировки)
>>> 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"
В идеале, я хотел бычтобы иметь возможность проверить данные, хранящиеся в моей базе данных Oracle, используя все вышеперечисленные методы.Я бы согласился на то, что кто-то просто подтвердит, что то, что я увидел в Hex Viewer, было достаточно «тестом»;)