解码 Base64 字符串不翻译特殊字符
Decoding Base64 string doesn't translate special chars
我有一个编码为 Base64 的 XML 文件,该文件中嵌入了图像。
我的问题是当我尝试解码它时:
这是我的代码:
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);
我有一个编码为 Base64 的 XML 文件,该文件中嵌入了图像。
我的问题是当我尝试解码它时:
这是我的代码:
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);