Есть ли в Snowflake запрос для определения недопустимых символов в файле utf8 [дубликат]

Aug 19 2020

У меня есть файл, который при загрузке в Snowflake получает ошибку для недопустимых символов UTF-8, мне удалось загрузить его в таблицу, используя другую кодировку, создав формат файла с опцией, ENCODING = 'iso-8859-1'но я хотел бы найти способ получить эти запрошенные символы.

Я пробовал TO_BINARY(col,'UTF-8')функцию, надеясь, что она не сработает в столбце с недопустимым UTF-8, но не смог получить действительный результат для захвата этих символов, сталкивался ли кто-нибудь с такой же проблемой?

Ответы

1 DarrenGardner Aug 20 2020 at 02:33

Обратите внимание, что ВСЕ символьные данные в Snowflake кодируются с использованием UTF-8 . Другого варианта нет. Некоторое время назад это было не совсем так, и в Snowflake можно было иметь символьные данные, НЕ действующие в кодировке UTF-8. Но сейчас это невозможно.

Указание ENCODING = 'iso-8859-1'параметра давало команду Snowflake (во время операции COPY INTO) выполнить преобразование набора символов в файле (который затем интерпретировался как кодированный в ISO-8859-1), отображая все символы в их эквиваленте UTF-8, поскольку он был записан в Снежинка. В результате все данные в Snowflake кодируются в кодировке UTF-8, и поэтому не должно быть НИКАКИХ символов, отличных от UTF-8. Тем не менее, результат преобразования набора символов может не привести к преобразованию в правильные / ожидаемые символы UTF-8, если базовый (исходный) файл не был действительно закодирован кодировкой, указанной вами во время COPY INTO (в данном случае ISO -8859-1).

Учитывая это, какую главную проблему вы здесь пытаетесь решить? Вы загрузили исходный файл, ENCODING = 'iso-8859-1'который на самом деле не был ISO-8859-1? Или вы говорите , что исходный файл БЫЛ действительно кодируются как ISO-8859-1, и все же как - то результирующие символы в Snowflake либо (1) неправильно или (2) недопустимый UTF-8? Или вы пытаетесь определить фактическую кодировку исходного файла (полностью игнорируя весь аспект ISO-8859-1)?

Monem_منعم Aug 19 2020 at 19:08

Подробный ответ найден здесь. Как найти в Snowflake строки с символами, отличными от utf8?

Следует отметить мой вопрос как повторяющийся и сослаться на ссылку, пожалуйста.