解码 Base64 字符串不翻译特殊字符

Decoding Base64 string doesn't translate special chars

我有一个编码为 Base64 的 XML 文件,该文件中嵌入了图像。

我的问题是当我尝试解码它时:

String sample is here

这是我的代码:

UTF8 版本: 这个可以解码并加载到 XML 但特殊字符不能正确解码 (á,é,í,ó,ú, ñ,Ñ) 都被解码为?符号.

    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 语法 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 中的嵌入图像,如果这对于标准函数是不可能的,我如何捕捉和翻译 ? symbol s 到可读字符?

来自您的 XML 文档:

<?xml version = "1.0" encoding="Windows-1252" standalone="yes"?>

所以,这有效:

DeCoded = Encoding.GetEncoding(1252).GetString(Base64);