Tôi có tệp DACPAC được xây dựng trong Visual Studio 2013, cho một dự án SSDT. Dự án SSDT này định nghĩa một kịch bản hậu triển khai được thiết kế để kết hợp một số dữ liệu tĩnh vào các bảng đã xuất bản và một phần dữ liệu chứa một biểu tượng bản quyền.Xuất bản tệp DACPAC với MSDeploy, các ký tự UTF8 trong tập lệnh hậu triển khai bị mất
Bây giờ, khi tôi xuất bản cơ sở dữ liệu thông qua Visual Studio, biểu tượng bản quyền được giữ nguyên và hợp nhất chính xác vào bảng đích. Khi tôi xuất bản cùng một cơ sở dữ liệu (với cùng một dacpac và xuất bản hồ sơ) bằng cách sử dụng MSDeploy, biểu tượng bản quyền được hợp nhất vào cơ sở dữ liệu đích dưới dạng "?" ký hiệu. Tương tự như vậy, khi tôi sử dụng Action:Script
thay vì Action:Publish
, tập lệnh SQL được tạo có chứa "?" thay vì biểu tượng bản quyền.
Dường như nếu kịch bản Visual Studio là tạo được UTF8 mã hóa, nhưng kịch bản đó được nướng vào dacpac mất mã hóa UTF8. Có ai có bất kỳ ý tưởng về cách làm việc xung quanh vấn đề này?
Bạn đã kiểm tra mã hóa của chính tệp tập lệnh chưa. Nếu tệp tập lệnh SQL nằm trong ANSII, lưu nó dưới dạng UTF8. –
Có, tôi đã kiểm tra. Tệp Kịch bản hậu triển khai trong Visual Studio thực sự được mã hóa bằng UTF-8. Tương tự như vậy, tệp postdeploy.sql được giải nén nếu tôi nhấp đúp vào tệp .dacpac cũng được mã hóa UTF-8. Tôi cũng so sánh tệp kịch bản xuất bản được tạo bởi Visual Studio và tệp được giải nén từ tệp .dacpac. Sự khác biệt duy nhất (trong phần hậu triển khai, đáng nói đến) là các ký tự đặc biệt bị mất. –