我有一个编码为Base64的XML文件,这个文件嵌入了图像。
我的问题是当我尝试解码时:
这是我的代码:
UTF8版本:这个可以被解码并加载到XML中但是特殊的字符不能正确解码(á,é,í,ó,ú,ñ,Ñ)都被解码为< STRONG>?符号
public XmlDocument GetXmlDocument(string Base64Text)
{
string DeCoded = string.Empty;
XmlDocument Datos = new XmlDocument();
byte[] Base64 = Convert.FromBase64String(Base64Text);
DeCoded = Encoding.UTF8.GetString(Base64);
Datos.LoadXml(DeCoded);
return Datos;
}
UTF7版本:可以对此进行解码,并且可以正确解码特殊字符。如果由于嵌入的图像无法正确解码,则无法将图像加载到XML文档。
public XmlDocument GetXmlDocument(string Base64Text)
{
string DeCoded = string.Empty;
XmlDocument Datos = new XmlDocument();
byte[] Base64 = Convert.FromBase64String(Base64Text);
DeCoded = Encoding.UTF7.GetString(Base64);
Datos.LoadXml(DeCoded);
return Datos;
}
编辑1:我编码的Base64字符串来自使用的VFP应用程序 VFP Sintax STRCONV(lcImage,6)
In VFP help it says:
Converts character expressions between single-byte, double-byte, UNICODE, and locale-specific representations.
6 表示:
6 Converts UNICODE (wide characters) to double-byte characters.
我正在尝试使用UTF7和UTF8,只是测试可以翻译我的字符串。
我只需要我的原始XML和它在.NET中嵌入的图像,如果这对于标准函数是不可能的,我如何捕获和翻译?符号是可读的字符?
答案 0 :(得分:2)
从您的XML文档:
<?xml version = "1.0" encoding="Windows-1252" standalone="yes"?>
所以,这有效:
DeCoded = Encoding.GetEncoding(1252).GetString(Base64);