如何在IE中显示UTF-16文件

时间:2013-12-03 19:36:00

标签: internet-explorer unicode

我有一个网页,它对WCF服务进行ajax调用,以将解密的日志文件作为字符串返回。 Web服务只需要一个设备名称,查找路径,调用外部exe来解密文件并直接将内容作为字符串返回。我使用外部exe,因为exe首先负责创建和加密日志文件。显然,其中一个日志文件存在问题,并强制作者更改它以在我调用它来解密文件时返回UTF-16字符串。在Chrome中,字符串显示正常但在IE中它只显示第一个字符(基本上是唯一的非unicode外观字符)。以下是我从WCF调用回来的示例:

知道如何在IE中显示这些内容吗?就像我说的,它在Chrome中显示就好了。

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-UA-Compatible: IE=edge
Date: Tue, 03 Dec 2013 19:26:28 GMT

"0\u00005\u0000\/\u00002\u00003\u0000\/\u00002\u00000\u00001\u00003\u0000 \u00000\u00008\u0000:\u00000\u00004\u0000:\u00005\u00007\u0000\u0015\u00001\u0000.\u00000\u0000.\..."

我的WCF webservice方法定义如下:

[WebInvoke(UriTemplate = "GetCriticalErrorLog",
    Method = "POST",
    RequestFormat = WebMessageFormat.Json,
    ResponseFormat = WebMessageFormat.Json,
    BodyStyle = WebMessageBodyStyle.WrappedRequest)]
string GetCriticalErrorLog(string unitname, short type);

这是我在读取文件时获得的C#代码以及该方法返回浏览器的内容: “0 \ 05 \ 0 / \ 02 \ 03 \ 0 / \ 02 \ 00 \ 01 \ 03 \ 0 \ 00 \ 08 \ 0:\ 00 \ 04 \ 0:\ 05 \ 07 \ 0 \ 01 \ 0 \ 00 \ 0. \ 01 \ 04 \ 02 \ 00 \ 0 \ 0 \ 0V \ 0i \ 0s \ 0i \ 0o \ 0n \ 0C \ 0o \ 0n \ 0f \ 0i \ 0g \ 0(\ 01 \ 0. \ 00 \ 00 \ 0 \ 01 \ 01 \ 08 \ 0)\ 0 \ 0A \ 0P \ 0P \ 0M \ 0A \ 0I \ 0N \ 0W \ 0N \ 0D \ 0 \ 0℃\ 0P \ 0P \ 0(\ 02 \ 00 \ 00 \ 03 \ 0)\ 0 \ 0 ...“

我刚刚发现一些日志文件确实在IE中显示,因此内容中必定存在导致Chrome不会导致问题的问题。

0 个答案:

没有答案