C#将实体转换为XML,编码的问题

豆丁_ 2013-06-30 04:10:56
代码如下所示,在转换过程中,发现转换的编码为utf-16。请问如何实现指定的编码类型,如转换为utf-8的编码。



public static string SerializeToXml(object srcObject, Type type)
{
type = type != null ? type : srcObject.GetType();
XmlSerializer xs = new XmlSerializer(type);
StringBuilder stb = new StringBuilder();
XmlWriter xw = XmlWriter.Create(stb);
xs.Serialize(xw, srcObject);
return stb.ToString();
}


...全文
688 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajaxfeifei 2014-12-19
  • 打赏
  • 举报
回复
引用 6 楼 vicent3 的回复:
[quote=引用 4 楼 lc2737 的回复:]

        public static string SerializeToXml(object srcObject, Type type)
        {
            type = type != null ? type : srcObject.GetType();
            XmlSerializer xs = new XmlSerializer(type);
            StringBuilder stb = new StringBuilder();
            XmlWriter xw = XmlWriter.Create(stb, new XmlWriterSettings(){Encoding = UTF8Encoding.UTF8});
            xs.Serialize(xw, srcObject);
            return stb.ToString();
        }
遇到产生的是<?xml version="1.0" encoding="utf-8"?> 而sap对接区分的是UTF-8,小写还会出问题。。如何转变?[/quote] 那就replace就行了啊,变成小写不就行了,有些时候这些办法没那么复杂。
vicent3 2014-12-19
  • 打赏
  • 举报
回复
引用 4 楼 lc2737 的回复:

        public static string SerializeToXml(object srcObject, Type type)
        {
            type = type != null ? type : srcObject.GetType();
            XmlSerializer xs = new XmlSerializer(type);
            StringBuilder stb = new StringBuilder();
            XmlWriter xw = XmlWriter.Create(stb, new XmlWriterSettings(){Encoding = UTF8Encoding.UTF8});
            xs.Serialize(xw, srcObject);
            return stb.ToString();
        }
遇到产生的是<?xml version="1.0" encoding="utf-8"?> 而sap对接区分的是UTF-8,小写还会出问题。。如何转变?
vicent3 2014-12-19
  • 打赏
  • 举报
回复
引用 4 楼 lc2737 的回复:

        public static string SerializeToXml(object srcObject, Type type)
        {
            type = type != null ? type : srcObject.GetType();
            XmlSerializer xs = new XmlSerializer(type);
            StringBuilder stb = new StringBuilder();
            XmlWriter xw = XmlWriter.Create(stb, new XmlWriterSettings(){Encoding = UTF8Encoding.UTF8});
            xs.Serialize(xw, srcObject);
            return stb.ToString();
        }
多谢已解决了,XmlWriterSettings XmlWriterSettings.Encoding .
ajaxfeifei 2014-12-19
  • 打赏
  • 举报
回复

        public static string SerializeToXml(object srcObject, Type type)
        {
            type = type != null ? type : srcObject.GetType();
            XmlSerializer xs = new XmlSerializer(type);
            StringBuilder stb = new StringBuilder();
            XmlWriter xw = XmlWriter.Create(stb, new XmlWriterSettings(){Encoding = UTF8Encoding.UTF8});
            xs.Serialize(xw, srcObject);
            return stb.ToString();
        }
vicent3 2014-12-19
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
.net平台上是用utf16表示字符串。 你的utf8如果是用来通讯时使用的,那时就是把一个字符串(utf16的)以utf8形式编码为byte[],并发送。这并不会改变你传送的是一个utf16的字符串的事实。
请问大神,在实体model序列化为string的时候,如何在序列化前就指定xml标识行为 <?xml version="1.0" encoding="UTF-8"?> ??
vicent3 2014-12-19
  • 打赏
  • 举报
回复
引用 7 楼 lc2737 的回复:
[quote=引用 6 楼 vicent3 的回复:] [quote=引用 4 楼 lc2737 的回复:]

        public static string SerializeToXml(object srcObject, Type type)
        {
            type = type != null ? type : srcObject.GetType();
            XmlSerializer xs = new XmlSerializer(type);
            StringBuilder stb = new StringBuilder();
            XmlWriter xw = XmlWriter.Create(stb, new XmlWriterSettings(){Encoding = UTF8Encoding.UTF8});
            xs.Serialize(xw, srcObject);
            return stb.ToString();
        }
遇到产生的是<?xml version="1.0" encoding="utf-8"?> 而sap对接区分的是UTF-8,小写还会出问题。。如何转变?[/quote] 那就replace就行了啊,变成小写不就行了,有些时候这些办法没那么复杂。[/quote] 好吧 是觉得那样不太好!
豆丁_ 2013-06-30
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
.net平台上是用utf16表示字符串。 你的utf8如果是用来通讯时使用的,那时就是把一个字符串(utf16的)以utf8形式编码为byte[],并发送。这并不会改变你传送的是一个utf16的字符串的事实。
不太明白您的意思 您指的是例子中的转换就只能是utf16格式的吗? 即使是以utf8形式编码为byte[],并发送。但这种情况下,字符串还是utf16? 另:能否指定一下,在序列化的时候生成的XML编码标记就是utf-8呢?
  • 打赏
  • 举报
回复
.net平台上是用utf16表示字符串。 你的utf8如果是用来通讯时使用的,那时就是把一个字符串(utf16的)以utf8形式编码为byte[],并发送。这并不会改变你传送的是一个utf16的字符串的事实。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧