Charset of File- Oracle

Я пытаюсь импортировать файл, используя UTL_FILE в Oracle 11g, есть способ узнать, в какой кодировке характерен файл?

Что я пытаюсь сделать, это вернуть ошибку, когда кодировка файла отличается от UTF-8, чтобы избежать ошибок при вставке.

1 ответ

Наверное, нет (по крайней мере, не легко).

Если вам действительно повезет, файл будет начинаться с метки порядка байтов, которая позволит вам определить, что файл имеет кодировку UTF-8 с достаточной степенью достоверности. Но это совершенно необязательный атрибут файла (и тот, который ваш код должен будет отбросить перед чтением реальных данных в файле).

Кроме того, вы находитесь в сфере проверки данных и определения наиболее вероятного набора символов. В общем, это сложно, особенно если у вас есть в основном файл на английском языке, где по крайней мере первые несколько сотен или тысяч байтов файла могут быть как действительными 7-битным ASCII, так и UTF-8. Вы можете прочитать файл и посмотреть, нет ли недопустимых кодовых точек UTF-8. Это не означает, что это действительно UTF-8, но, вероятно, он достаточно близок, чтобы действовать так, как если бы он был.

Другие вопросы по тегам