У меня есть следующая таблица "переводов" в базе данных 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