Итак, я решил, что это удовольствие от чтения текстового файла и хранения содержимого в NVARCHAR
с использованием TSQL и Microsoft SQL Server Management Studio 2008 R2. Я нашел пример для этого в https://www.simple-talk.com/sql/t-sql-programming/the-tsql-of-text-files/Чтение TSQL из файла в ошибку varchar/nvarhar
Так что я попытался это с моим ABC.txt
файл и его содержимое:
АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ
АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ
Когда я первый пытался хранить содержимое этого файла в @myString
Я использовал этот код:
declare @myString nvarchar(max);
Select @myString = BulkColumn
from OPENROWSET(Bulk 'C:\Users\<myComputer'sNameHere>\Documents\How2\FilesForTestingStuff\ABC.txt', SINGLE_BLOB) as x
print @myString;
Я получил это как мой выход, когда я печатал строку:
䉁 䑃 䙅 䡇 䩉 䱋乍 偏 剑 呓 噕 塗 婙 扡 摣 晥 桧 橩 汫 湭 灯 牱 瑳 癵 硷 穹
Я тя nged nvarchar
- varchar
, и я получил правильное содержимое файла.
Кто-нибудь знает, почему это произошло? Я не думал, что есть разница в конверсии, отличная от nvarchar
, имеет больше свободного места, чем varchar
и способна удерживать символы юникода.
Как вы обычно пытаетесь читать из файла и вставлять содержимое в nvarchar
?
Ok Я понимаю причину файла часть, но я не знаю, как проверить кодировку файла, и я не могу найти TSQL примеры преобразования файлов. – user3003304
Вы можете использовать текстовый редактор для проверки кодировки файла. Вы также можете сохранить файл с соответствующей кодировкой, используя * SQL Server Management Studio *. Просто нажмите кнопку, чтобы создать новый файл сценария, введите данные, нажмите «Сохранить как ...», затем нажмите небольшую стрелку рядом с кнопкой «Сохранить» и выберите «Сохранить с кодировкой ...». Из списка * Кодировка * выберите *** Юникод (1200) *** и сохраните файл. –
@ user3003304 - вы можете оказаться полезными: http://www.joelonsoftware.com/articles/Unicode.html. Чтобы просмотреть кодировку файла, вы можете использовать шестнадцатеричный редактор, например. Visual Studio имеет один встроенный или мне нравится использовать: «xvi32». –