带有ooxml的Docx特殊字符

时间:2013-02-21 07:58:13

标签: c# encoding openxml docx

我正在使用http://www.codeproject.com/Articles/91894/HTML-as-a-Source-for-a-DOCX-File将HTML转换为docx。

大多数字符都已正确读取,但某些特殊字符(如•,“”)显示为。我应该怎么做才能纠正这个问题?

我传递给HTMLtoDocx的HTML也没有正确读取特殊字符。相反它显示为'?'。将编码更改为Encoding.Default后,它返回正确的字符。 在HTMLtoDOCX中,有两个地方我可以设置编码(下面的行)。在我尝试将编码格式从Encoding.UTF8更改为编码的两个地方。但它没有帮助。

StreamWriter streamStartPart = new StreamWriter(docpartDocumentXML.GetStream(FileMode.Create, FileAccess.Write), Encoding.Default);
byte[] Origem = Encoding.Default.GetBytes(html);

1 个答案:

答案 0 :(得分:0)

•表示UTF-8序列被错误地解释为ANSI(= Encoding.Default)。

您应该检查是否使用正确的编码读取HTML文件。

虽然HTTP标头或HTML META标签中提供了编码信息,但如果从文件中读取HTML,则此编码可能不正确。

由于.Net将字符串字符视为2字节Unicode值,因此确保将正确的编码应用于读取和写入字节流是解决问题的第一步。