Кодирование символа «€» в базе данных Oracle ISO-8859-1 - PullRequest
2 голосов
/ 29 апреля 2011

Можно ли вставить "€" (как VARCHAR) в базу данных Oracle, набор символов которой: ISO-8859-1?

Я хочу перейти с кодировки ISO-8859-1 на кодировку ISO-8859-15 (или даже подойдет кодировка WINDOWS-1252) моей базы данных, чтобы сохранить «€» в моей базе данных, но один сказал мне, что с кодировку ISO-8859-1 для базы данных, можно было бы хранить непосредственно мой символ "€".

Таким образом, проблема в том, что на данный момент я пытаюсь найти это решение для базы данных ISO-8859-1> Было бы целесообразно вставить «€» (в зависимости от набора символов клиентов / драйверов / и т. Д.). ., но не в зависимости от кодировки базы данных)

Что вы думаете об этом ..?

Если это правда, , тогда почему мы должны определять набор символов для базы данных Oracle? Один из них сказал мне, что Oracle просто «знает, сколько байтов необходимо для кодирования символа» (и поэтому выбор кодировки эквивалентен выбору только количества битов для Oracle для кодирования каждого символа. Вывод: ISO-8859 -1 = ISO-8859-15-WINDOWS = 1252 в некоторых случаях для Oracle, поскольку количество необходимых битов одинаково ...)

Я надеюсь, что я (почти) ясно .. Но по моему мнению Я думаю, что я никогда не смогу выполнить INSERT (с " € ") и ВЫБЕРИТЕ и получите мои" € "в базе данных ISO-8859-1 ...

Спасибо, что читаете меня ..

(PS: база данных 10g версия)

1 Ответ

4 голосов
/ 29 апреля 2011

Символ не назначен в ISO-8859-1.Поэтому вы не можете представить это.Тот же байт, что и в ISE-8859-15, используется для представления ¤ (общего денежного символа).

Источник

Oracle необходимо знать, в каком наборе символов он установленбудет кодировать базу данных для следующих целей:

  • Знать, сколько байтов хранить каждый символ
  • Возможность выполнять преобразования, когда NLS клиентов различаются (некоторые клиенты отправляютзапрос в UTF-8, с данными, которые действительны ISO-8859-1: Oracle может перевести его).
  • Пакеты, которые анализируют содержимое столбца (например, полнотекстовый поиск), чувствительны к тому, какой это символ.
...