如何解码包含拉丁字母的 XML 文档的 Base64 编码字符串(\xc3\xa1,\xc3\xa9,\xc3\xad,\xc3\xb3,\xc3\xba)?
我知道这个问题How do I Encode and Decode a Base64 string? \n但是提供的解决方案不适用于带有重音符号的字母。
\n\n到目前为止我已经尝试过:
\n\nxmlBase64 = System.Text.Encoding.ASCII.GetString(System.Convert.FromBase64String(XmlDoc));\nxmlBase64 = System.Text.Encoding.Unicode.GetString(System.Convert.FromBase64String(XmlDoc));\nxmlBase64 = System.Text.Encoding.UTF8.GetString(System.Convert.FromBase64String(XmlDoc));\nxmlBase64 = System.Text.Encoding.UTF32.GetString(System.Convert.FromBase64String(XmlDoc));\nRun Code Online (Sandbox Code Playgroud)\n\n但在所有情况下,拉丁字母(西班牙语字符)都会被替换为?或类似字符。
编辑:
\n\n\n\n这是解码后的字符串
\n查看 生成的字节很有帮助System.Convert.FromBase64String(XmlDoc)。
我已经这样做了,并查看了原始字符串中的单词“met\xc3\xa1licas”(这只是我找到的第一个带重音的单词)。字符串的这一部分被转换为字节数组6D 65 74 E1 6C 69 63 61 73。
从该字节数组很容易看出两件事:
\n\n从那里我猜测这将是某种形式的扩展 ASCII,Windows-1252似乎可以工作。请尝试以下操作:
\n\nxmlBase64 = System.Text.Encoding.GetEncoding(1252).GetString(System.Convert.FromBase64String(XmlDoc));\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3782 次 |
| 最近记录: |