设置:我有一个在 asp.net/c# 中构建的表单,在提交时,XML 序列化它的对象模型,并以 XML 序列化数据作为唯一参数调用存储过程。存储过程将该数据发送到 sql 代理队列。发送到代理队列的消息必须是符合队列上设置的消息协定的有效 XML。该消息由 BizTalk 拾取并进行相应处理。
问题:最初提交给我的数据只是普通的英文字符(基本上保存为 ASCII 字符集),但也需要支持外来字符。在我的测试中,我注意到如果我尝试提交带有外来字符(中文、阿拉伯文等)的内容,我会在队列中收到一个错误,并且到达 BizTalk 的消息以“?????”结尾。代替外来字符。我已将 utf=16 xml 标头添加到文档顶部,但这似乎没有帮助。
问题:有没有办法可以将传入的 XML 消息转换为 nvarchar 并且仍然让它被队列视为有效的 XML?我不想更改队列中的实际类型或重新创建它。我宁愿以某种方式单独更改存储过程中的消息,使其能够进入队列。
在此先感谢您的帮助。