Запрос для анализа JSON с использованием openrowset, преобразующего специальные символы

Мы пытаемся обработать документ JSON с помощью SQL Server 2019. При использовании приведенного ниже запроса для анализа документа JSON с помощью openrowset он преобразует специальные символы. Например, (Ó или Ñ) преобразуются в Ã’.

Запрос:

SELECT d.*
FROM OPENROWSET (BULK '\\drive\data.json', SINGLE_CLOB) X
CROSS APPLY OPENJSON (X.BulkColumn COLLATE Latin1_General_100_CI_AS_SC_UTF8, '$.Data')
WITH ([N] NVARCHAR(250) COLLATE Latin1_General_100_CI_AS_SC_UTF8) AS d

Какие еще есть варианты решения этой проблемы?

Вместо этого попробуйте SINGLE_BLOB

siggemannen 24.07.2024 20:57
SINGLE_BLOB выдает эту ошибку JSON text is not properly formatted. Unexpected character '੻' is found at position 0.
paone 24.07.2024 20:59

а как насчет SINGLE_NCLOB?

siggemannen 24.07.2024 21:23

Невозможно разобрать файл. Для SINGLE_NCLOB требуется входной файл UNICODE (widechar). Указанный файл не является Unicode.

paone 24.07.2024 21:27

Вы уверены? у него, кажется, есть какая-то спецификация?

siggemannen 24.07.2024 21:28

Символ '੻' в вашем предыдущем комментарии — это шестнадцатеричный код 7B 0A, который представляет собой однобайтовые символы для «{» и новой строки. Итак, вариант SINGLE_CLOB правильный. Скорее всего, вам потребуется добавить параметр CODEPAGE = 'nnn' с соответствующим номером кодовой страницы, соответствующим вашему языковому стандарту (или любой другой кодировке или исходному файлу). Если вы откроете исходный файл в Notepad++, какой пункт меню «Кодировка> Наборы символов> Регион> Значение» даст вам правильное отображение?

T N 24.07.2024 23:41
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
7
74
1
Перейти к ответу Данный вопрос помечен как решенный

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