【发布时间】:2015-07-17 18:04:49
【问题描述】:
我得到一个代表 rtf 文件的 base64 编码字符串。
如果我查看原始文本表示(在 base64 编码之前),我会看到字符序列 F¸r。当在查看器中显示时,这应该代表Für。 rtf 文件的标头包含ansicpg1252,因此这应该是编码,除非另有更改(转义序列、字体定义等)。
我现在的问题是我无法将 base 64 字符串正确解码为其原始表示。我再也没有得到F¸r。相反,我有Für 甚至F\'fcr。因此,在查看器中显示解码的 rtf 时,变音符号的表示是错误的。
那么 rtf 文件的原始编码是什么?或者这里出了什么问题?
您可以查看示例文件here。 This 是我得到的 base 64 编码字符串。
编辑:
我没有编码的代码,但我想我可以重建它。这是我的代码:
string path = "/some/path/ltxt1 Kopie.rtf";
byte[] document = File.ReadAllBytes(path);
string base64string = Convert.ToBase64String(document);
var isoBytes = Convert.FromBase64String(base64string);
File.WriteAllText ("/some/path/sketch.rtf", System.Text.Encoding.GetEncoding("iso-8859-1").GetString(isoBytes));
我尝试更改编码,但使用windows-1252 时出现错误(草图:不支持编码名称,实际项目:数组不为空)。
【问题讨论】:
-
你能添加你用来编码和解码内容的代码吗?
-
我从 Web 服务获取内容,但无法获取编码代码。我被告知应该使用
iso-8859-1进行编码。至少我可以访问原始文件。我用我所拥有的更新我的问题。
标签: c# encoding character-encoding base64 rtf