XML编码格式转换问题,急!!!
我要在网页上上传一个XML文件,我在C#中写了一个验证XML文件格式的方法:
private bool ValidateXml(string xmlFilePath)
{
string xsdPath = Request.PhysicalApplicationPath + @"Files\example\rcpt.xsd";
//使用xmlReader验证XML格式
// Set the validation settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add(null, xsdPath);
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationEventHandler += new ValidationEventHandler(settings_ValidationEventHandler);
// Create the XmlReader object.
XmlReader reader = XmlReader.Create(xmlFilePath, settings);
// Parse the file.
try
{
while (reader.Read());
}
catch (Exception ex)
{
lblMessage.Text = "出现异常!" + ex.Message;
return false;
}
reader.Close();
return isValidateXML;
}
现在出现的问题就是当上传的xml文件的编码格式是UTF-8而且文件里面有中文的时候,在走这个验证的时候就会格式不通过,我需要把utf-8转化成gb2312,才能通过这个验证。但是我不知道要怎么转换,请高手指教。
上传的xml文件入下:
<?xml version="1.0" encoding="UTF-8" ?>
<orders>
<order rcptNo="2820204">
<invcId>6.68003E+11</invcId>
<dlverCd>804</dlverCd>
<stat>Z</stat>
<dlverName>山东</dlverName>
<desc>desc</desc>
</order>
<order rcptNo="">
<invcId>668003057092</invcId>
<dlverCd>804</dlverCd>
<stat>Y</stat>
<dlverName>海红</dlverName>
<desc>desc2</desc>
</order>
</orders>