Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XSLT转换后的前导非法字符_C#_Asp.net_Xslt - Fatal编程技术网

C# XSLT转换后的前导非法字符

C# XSLT转换后的前导非法字符,c#,asp.net,xslt,C#,Asp.net,Xslt,在XSLT转换之后,我不断得到与字符编码有关的主要问号,但我无法摆脱它们。我尝试了所有不同的编码,但都没用。在序列化对象时,我一直使用内存中的xml源 这是我的代码(尽可能短以重现问题) 可能很简单,但我想不出来 问候, Heras将ms.Position设置为0而不是1 C#数组的索引为零。将ms.Position设置为0,而不是1 C#数组是零索引的。可能是字节顺序标记(BOM)用于提示保存文本文件的编码方式。(默认情况下,Visual Studio将其大多数文本文件(如.cs)保存在带有B

在XSLT转换之后,我不断得到与字符编码有关的主要问号,但我无法摆脱它们。我尝试了所有不同的编码,但都没用。在序列化对象时,我一直使用内存中的xml源

这是我的代码(尽可能短以重现问题)

可能很简单,但我想不出来

问候,


Heras将
ms.Position

设置为0而不是1


C#数组的索引为零。

ms.Position
设置为0,而不是1


C#数组是零索引的。

可能是字节顺序标记(BOM)用于提示保存文本文件的编码方式。(默认情况下,Visual Studio将其大多数文本文件(如
.cs
)保存在带有BOM的UTF-8中。)可能是字节顺序标记(BOM)用于提示保存文本文件的编码方式。(默认情况下,Visual Studio将其大部分文本文件(如
.cs
)保存在带有BOM的UTF-8中。)尽管流由数组支持,但这是一个实现细节。我宁愿说那是零基的。我现在觉得很傻。这解决了它。。。我是如此专注于字符编码,以至于我没有注意到。。。谢谢虽然流由数组支持,但这是一个实现细节。我宁愿说那是零基的。我现在觉得很傻。这解决了它。。。我是如此专注于字符编码,以至于我没有注意到。。。谢谢
var xd = new XmlDocument();
xd.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8""?><Test><AAA>AAA</AAA></Test>");

var xslt = new System.Xml.Xsl.XslCompiledTransform();
xslt.Load(Server.MapPath("/Transformations/Test.xslt"));

using (var ms = new MemoryStream())
{
    xslt.Transform(xd, null, ms);
    ms.Position = 1;

    using (var sr = new StreamReader(ms, System.Text.Encoding.UTF8, true))
    {
        string s = sr.ReadToEnd();
    }
}
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="text"  indent="no"/>
    <xsl:template match="Test">
        BBB<xsl:value-of select="AAA" />CCC
    </xsl:template>
</xsl:stylesheet>
��\r\n\t\tBBBAAACCC\r\n\t