Charset of File- Oracle
Я пытаюсь импортировать файл, используя UTL_FILE в Oracle 11g, есть способ узнать, в какой кодировке характерен файл?
Что я пытаюсь сделать, это вернуть ошибку, когда кодировка файла отличается от UTF-8, чтобы избежать ошибок при вставке.
1 ответ
Наверное, нет (по крайней мере, не легко).
Если вам действительно повезет, файл будет начинаться с метки порядка байтов, которая позволит вам определить, что файл имеет кодировку UTF-8 с достаточной степенью достоверности. Но это совершенно необязательный атрибут файла (и тот, который ваш код должен будет отбросить перед чтением реальных данных в файле).
Кроме того, вы находитесь в сфере проверки данных и определения наиболее вероятного набора символов. В общем, это сложно, особенно если у вас есть в основном файл на английском языке, где по крайней мере первые несколько сотен или тысяч байтов файла могут быть как действительными 7-битным ASCII, так и UTF-8. Вы можете прочитать файл и посмотреть, нет ли недопустимых кодовых точек UTF-8. Это не означает, что это действительно UTF-8, но, вероятно, он достаточно близок, чтобы действовать так, как если бы он был.