У меня есть программа, которая получает данные через веб-службы, и некоторые из данных, похоже, являются проблемой формата.Обработка ¿в Oracle
Например, я получаю данные типа «XYZ ¿ABC».
Проблема в том, что длина данных, которую я ожидаю получить, определяется как VARCHAR2 (9 BYTE).
В моей программе Java я вижу, что длина данных равна 9, но как-то при попытке вставить данные на стороне Oracle, я получаю ошибку несоответствия длины поля (где Oracle обрабатывает ее как 10.
я изменил свою программу для чтения данных в формате ANSI, как хорошо, но проблема все еще существует.
Пожалуйста посоветуйте если есть какие-то изменения я должен сделать в моей программе, чтобы справиться с этим (одна из идеи заключается в используйте подстроку на стороне Oracle и ограничьте переданные данные данными до 9 байтов, но я не хочу этого делать, поскольку в этом случае я могу потерять некоторые данные).
С уважением.
'¿' обычно указывает на проблему преобразования набора символов. Какую правильную строку вы пытаетесь обработать? Каков набор символов в вашей базе данных Oracle? – sstan
Длина этих данных составляет 9 символов, но количество байтов зависит от кодировки. В UTF-8 это 10 байт. Вы должны решить, хотите ли вы изменить определение поля или дезинформировать данные перед вставкой. – RealSkeptic
'¿' является владельцем места для символа, который не может быть сохранен в вашей базе данных или ваш клиент не может хранить. Каков набор символов для вас и что вы ожидаете от вывода? –