powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
5 сообщений из 5, страница 1 из 1
экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
    #37384263
DenisKlementiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поможите люди добрые!
Никогда с XML не работал.
Задача следующая:

С помощью bcp выгружаю из базы xml файл. Как известно sql выгружает в кодировке UTF-8 а мне нужна Windows 1251.
Выгружаемый файл имеет строку <?xml version="1.0"> без указания кодировки, а мне надо, чтобы эта строка выглядела как <?xml version="1.0" encoding="WINDOWS-1251"?>

Что делать ума не приложу, так как с xml еще не сталкивался. Куда копать? Для меня лучшее решение было бы в связке с SSIS. Так как сама выгрузка файла формируется SSIS.
...
Рейтинг: 0 / 0
экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
    #37385041
WadimX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DenisKlementiev,

FOR XML + COLLATE может помочь.
...
Рейтинг: 0 / 0
экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
    #37412704
DenisKlementiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vbscript

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Dim myStream, myConnection, myCommand, stx, srez 
Set myStream = CreateObject("ADODB.Stream")
Set myConnection = CreateObject("ADODB.Connection") 
Set myCommand = CreateObject("ADODB.Command")
myConnection.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;" & _ 
"Persist Security Info=False;Initial Catalog=База Данных;Data Source=Сервер"
myCommand.ActiveConnection=myConnection 
myCommand.CommandText="dbo.get_xml"
myCommand.Properties("Output Encoding").Value = "windows-1251" 
myStream.Open
myCommand.Properties("Output Stream") = myStream
myCommand.Execute ,,1024 'instead of adExecuteStream
myStream.Position=0
myStream.Charset="WINDOWS-1251"
Dim strxml
strxml = (Trim(myStream.ReadText))
stx = "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "windows-1251" & Chr(34) & "?>"
srez = stx & strxml
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("C:\имя файла.xml", True)
MyFile.WriteLine(Trim(srez))
MyFile.Close
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
    #39673227
WadimX,
FOR XML и COLLATE не совместимы в SELECT
Сам как раз сейчас бьюсь над этим.
С входной кодировкой на базе *General*Latin* чего-то там. И изменить ее нельзя...

Пока перепробовал все select для for xml предварительно с правильным collate и вызов из другой дружественнной БД с правильным collation.
Не помогло. Следующий шаг collate на каждое поле, но может народ попроще вариант нашел?
...
Рейтинг: 0 / 0
экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
    #39673256
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Георгий Францкевич,

энкодеров в инете как грязи. Выгружайте и перекодируйте. Заголовок поменяйте на 1251.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]