У меня есть следующая таблица «перевода» в базе данных Oracle 10g:
ID VARCHAR2(100 BYTE)
LANGUAGE CHAR(2 BYTE)
COUNTRY CHAR(2 BYTE)
TRANSLATION NVARCHAR2(2000 CHAR)
TRACK_TIMESTAMP DATE
TRACK_USER VARCHAR2(2000 BYTE)
Когда я пытаюсь сделать это:
update translation set translation = 'œ' where id = 'MY_ID' And language = 'fr';
Затем я запускаю это:
select * from translation where id = 'MY_ID' and language = 'fr';
и в столбце перевода показано: S
вместо œ
, и я понятия не имею, почему.
Из-за существующих проблем я не могу преобразовать всю базу данных в UTF-8, есть ли другие варианты?
В настоящее время национальный набор символов - AL16UTF16. Обычный набор символов WE8ISO8859P1.
Я сейчас использую Java 1.6
Выше приведен упрощенный пример. Вот как выглядит запрос в моем реальном приложении:
UPDATE TRANSLATION SET TRANSLATION=? WHERE TRANSLATION.COUNTRY=? and TRANSLATION.ID=? and TRANSLATION.LANGUAGE=? 1=1,800 - 2,500 œufs par heure 2=CA 3=3_XT_FE_ECS18 4=fr
Проблема в том, что вместо добавления œufs
добавляется ¿ufs