开发者

url encoded xml file

I have kml files stroed in the db which I zip using http://dotnetzip.codeplex.com/. Unfortunately my controller spews out xml that is url encoded. Ho can I prevent this. Here is my code:

public void GetKMZById(int? Id)
{
try
{
    if (Id == null)
    {
    throw new ArgumentException("No Id provided.");
    }

    Response.AddHeader("Content-Disposition", "attachment;filename=Map.kmz");
    Response.AppendHeader("Connection", "close");
    Response.ContentType = "application/vnd.google-earth.kmz";
    Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
    //Response.Charset = "utf-8";
    //Response.HeaderEncoding = UnicodeEncoding.UTF8;
    //Response.ContentEncoding = UnicodeEncoding.UTF8;

    SearchKMZFile SearchKMZFile = SearchKMZFileRepository.Get((int)Id);

    ZipOutputStream outzip = new ZipOutputStream(Response.OutputStream);
    outzip.EnableZip64 = Zip64Option.Never;
    outzip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
    outzip.PutNextEntry("Map.kml");

    XmlTextWriter xmlTW = new XmlTextWriter(outzip, Encoding.UTF8);
    xmlTW.WriteString(SearchKMZFile.KMZ);

    xmlTW.Flush();
    outzip.Close();
}
catch (Exception e)
{
    ModelState.AddModelError("Exception", e.Message);
}
}

The unziped xml look like this:

<?xml version="开发者_StackOverflow中文版1.0" encoding="us-ascii"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <Style id="s">
      <LineStyle>


Your question is very unclear.
You sound like you're asking for Uri.UnescapeDataString but you actually aren't.


The XmlTextWriter class is designed to build XML manually.
Callign WriteString will XML-escape the string.

If you have a string which already contains XML, you should simply write the text directly to the stream using a StreamWriter.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜