C# 带有ooxml的Docx的特殊字符

C# 带有ooxml的Docx的特殊字符,c#,encoding,openxml,docx,C#,Encoding,Openxml,Docx,我正在使用将HTML转换为docx 大多数字符都已正确读取,但一些特殊字符,如•,“将显示为–或”。我应该做些什么来纠正这个问题 我传递给HTMLtoDocx的HTML也没有正确读取特殊字符。相反,它显示为“?”。将编码更改为“编码”后。默认情况下,它将返回正确的字符。 在HTMLtoDOCX中,有两个地方可以设置编码(下面的行)。在这两个地方,我都尝试将编码格式从encoding.UTF8更改为encoding。但这没有帮助 StreamWriter streamStartPart = new

我正在使用将HTML转换为docx

大多数字符都已正确读取,但一些特殊字符,如•,“将显示为–或”。我应该做些什么来纠正这个问题

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

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

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

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

虽然编码信息在HTTP头或HTML元标记中可用,但如果从文件读取HTML,则此编码可能不正确


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

HTML页面是否采用UTF-8编码?然后您应该使用Encoding.UTF8.GetBytes(…)我遇到了与Encoding.UTF8.GetBytes相同的问题确定您是否尝试过使用Encoding.UTF8更改StreamWriter构造函数?添加Encoding.UTF8并将其添加到StreamWriter构造函数解决了问题。元标记中的Thanksen编码设置为UTF-8()。我正在阅读当前页面的html并对其进行处理。在调试模式下,我已经验证了字符是否正确显示,直到HTMLTOCKX对其进行处理。在HTMLTODOCX中,我改回了byte[]Origem=Encoding.UTF8.GetBytes(html);