Chrome和Firefox不会渲染Font-Awesome的WOFF / TTF,即使他们从HttpListener下载它们,也就是说,iOS上的Safari正在渲染Font-Awesome。 我正在使用.NET&#39的HttpListener类发送HTTP响应,如下所示:
private void Send(HttpListenerContext context, byte[] response, string contentType)
{
context.Response.StatusCode = (int)HttpStatusCode.OK;
context.Response.ContentEncoding = Encoding.UTF8;
context.Response.ContentType = contentType;
context.Response.ContentLength64 = response.Length;
context.Response.AddHeader("Server", SERVER);
if (response == null || response.Length == 0)
{
logger.Error("Send: Engine generated null or empty content");
context.Response.StatusCode = (int)HttpStatusCode.NotFound;
return;
}
using (var s = context.Response.OutputStream)
{
s.Write(response, 0, response.Length);
}
}
WOFF是否有其他编码类型(UTF8除外)?或者我有什么需要在Chrome或Firefox中处理的事情吗?
感谢任何帮助或指针,谢谢。
答案 0 :(得分:0)
在我自己的实现中,在提供字体或二进制文件时,我将所有ContentEncoding标头都省略了。
这应该有效:
{{1}}
答案 1 :(得分:0)
问题是我将所有www内容都设为Embedded Resource
,我创建了一种方法,将这些Embedded Resource
Stream
转换为byte
数组,方法是首先将其转换为使用string
编码的UTF-8
。
所以this stackoverflow question帮我确定了根本原因。将Embedded Resource
Stream
直接转换为byte
数组后,Chrome开始正确显示Font-Awesome字体!