powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sp_send_dbmail кодировка аттача
12 сообщений из 12, страница 1 из 1
sp_send_dbmail кодировка аттача
    #40100419
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

Отправляю email через sp_send_dbmail.
Результат запрос прикрепляется к письму в виде файла.

Проблема в том, что аттач приходит в кодировке ucs-2 le с BOM

Можно ли сделать кодировку аттача UTF-8 c BOM ?!

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SET NOCOUNT ON;

DECLARE @str NVARCHAR(MAX) = 'select 1'

EXEC msdb.dbo.sp_send_dbmail

     @profile_name = 'test',

     @recipients = 'email@email.ru',

     @query = @str,

     @query_attachment_filename = 'test.json',

     @exclude_query_output = 0,

     @query_result_header = 1,

     @query_no_truncate = 1,

     @subject = '(test)',

     @attach_query_result_as_file = 1;
...
Рейтинг: 0 / 0
sp_send_dbmail кодировка аттача
    #40100427
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovec
Проблема в том, что аттач приходит в кодировке ucs-2 le с BOM
Ну, так сохранили, значит.
Не может же sp_send_dbmail делать перекодировку.
...
Рейтинг: 0 / 0
sp_send_dbmail кодировка аттача
    #40100429
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

в запросе нет указания кодировки. Это сервер сам выбирает такую кодировку
Код: sql
1.
select 1
...
Рейтинг: 0 / 0
sp_send_dbmail кодировка аттача
    #40100447
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovec,

NVARCHAR - это ucs-2 le. Сиквел не работает с данными UTF-8. Единственное исключение - это импорт из файла, и только в старших версиях появилось.
...
Рейтинг: 0 / 0
sp_send_dbmail кодировка аттача
    #40100457
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Сиквел не работает с данными UTF-8.

Поясните, коллега!
Не понял вашей фразы.
...
Рейтинг: 0 / 0
sp_send_dbmail кодировка аттача
    #40100458
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
NewIvanovec,

NVARCHAR - это ucs-2 le. Сиквел не работает с данными UTF-8. Единственное исключение - это импорт из файла, и только в старших версиях появилось.


В sql server 2019 появилась возможность работать с utf-8 непосредственно в базе. Для этого были добавлены отдельные collation с UTF8


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
drop table if exists #test
create table #test (
	utf16	nvarchar(100)
	, utf8	varchar(100) collate Cyrillic_General_100_CS_AS_SC_UTF8
	, v	varchar(100) collate Cyrillic_General_100_CS_AS_SC
)

insert #test(utf16, utf8, v)
values  (nchar(209)+ N'ЯZ', nchar(209) + N'ЯZ', nchar(209) + N'ЯZ' 
)




select 
	utf16, DATALENGTH(utf16)
	, utf8, DATALENGTH(utf8) 
	, v, DATALENGTH(v) 
from #test



UPD:
Юникод символы в коде движок форму преобразовал в Ñ
В коде заменил на nchar(209), просто для возможности скопировать пример
...
Рейтинг: 0 / 0
sp_send_dbmail кодировка аттача
    #40100461
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex,

в моём случае 2017 версия сервера. что же делать, что же делать :(
...
Рейтинг: 0 / 0
sp_send_dbmail кодировка аттача
    #40100513
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
Владислав Колосов
Сиквел не работает с данными UTF-8.

Поясните, коллега!
Не понял вашей фразы.

Виимо вы имели в виду Поддержка параметров сортировки и Юникода

Импорт данных в Юникоде был всегде без проблем.
Даже никогда не задумывался, что "не работает" :)
...
Рейтинг: 0 / 0
sp_send_dbmail кодировка аттача
    #40100531
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovec,

что делать... Не пользоваться системной почтой, написать свою утилиту, тем более, что это не сложно. Даже не зная С# можно за полдня сделать.
...
Рейтинг: 0 / 0
sp_send_dbmail кодировка аттача
    #40100592
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё понял, всем спасибо!
...
Рейтинг: 0 / 0
sp_send_dbmail кодировка аттача
    #40100626
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
NewIvanovec,

что делать... Не пользоваться системной почтой, написать свою утилиту, тем более, что это не сложно. Даже не зная С# можно за полдня сделать.


Ща вы нам расскажите как sp_send_dbmail перекодирует вложения.
Не порите чушЪ. Ей больно.
...
Рейтинг: 0 / 0
sp_send_dbmail кодировка аттача
    #40100790
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

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


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