У меня есть файл DACPAC, который был встроен в Visual Studio 2013 для проекта SSDT. Этот проект SSDT определяет сценарий пост-развертывания, предназначенный для объединения некоторых статических данных в опубликованные таблицы, а одна часть данных содержит символ авторского права.Публикация файла DACPAC с MSDeploy, символы UTF8 в сценарии после развертывания теряются
Теперь, когда я публикую базу данных через Visual Studio, символ авторского права сохраняется и корректно сливается в целевую таблицу. Когда я публикую одну и ту же базу данных (с тем же дакпаком и публикую профиль) с использованием MSDeploy, символ авторского права объединяется в целевую базу данных как «?» символ. Аналогично, когда я использую Action:Script
вместо Action:Publish
, сгенерированный SQL-скрипт содержит «?» а не символом авторского права.
Кажется, что сценарий Visual Studio генерирует кодировку UTF8, но скрипт, который запекается в dacpac, теряет кодировку UTF8. Кто-нибудь есть идеи о том, как обойти эту проблему?
Вы проверили кодировку самого файла сценария. Если файл сценария SQL находится в ANSII, сохраните его как UTF8. –
Да, я проверил. Файл сценария Post-Deployment в Visual Studio действительно кодируется в UTF-8. Аналогично, файл postdeploy.sql, который распаковывается, если я дважды щелкаю файл .dacpac, также кодируется в кодировке UTF-8. Я также сравнил файл сценария публикации, который генерируется Visual Studio, и тот, который распакован из файла .dacpac. Единственными отличиями (в разделе после развертывания, которые стоит упомянуть) были потерянные специальные символы. –