2015-10-16 66 views
0

注意:我知道所有内容都应该是UTF-8,但目前我所维护的网站需要提供ISO-8859-1。iframe中嵌入的textarea中未显示重音字符

我有一个搜索框将结果加载到iframe中。其中一个搜索结果在textarea中包含以下字符串。

“#$%&“()* +, - 。/:; < =>
@ABCDEFGHIJKLMNO PQRSTUVWXYZ []^_
`ABCDEFGHIJKLMNO pqrstuvwxyz!{|}〜
¡¢? £¤¥|§¨©ª«¬®¯°±²³'μ¶·¸¹º»¼½¾¿
àÁÂÃÄÅÆÇÈÉÊËÌÍÎÏðÑÒÓÔÕÖ×ØÙÚÛÜÝÞß
àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
ASDF

如果我在自己的网页打开搜索结果领域看起来是正确的,但是当结果被放入iframe中,他们看起来像

“#$%&“()* +,! - 。/:; < =>?
@ABCDEFGHIJKLMNO PQRSTUVWXYZ []^_
`ABCDEFGHIJKLMNO pqrstuvwxyz {|}〜



ASDF

请求报头:

  • 接受:*/*
  • Accept-Encoding:gzip,deflate,sdch
  • Accept-Language:en-US,en; q = 0.8
  • Connection:keep-alive
  • Content-Type:application/x-www-form-urlencoded; charset = iso-8859-1
  • User-Agent:Mozilla/5.0(Windows NT 6.1; WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/46.0.2490.71 Safari/537。36
  • X-请求-随着:XMLHttpRequest的

响应头:

  • 缓存控制:无店,无缓存,必重新验证,后检查= 0, - 预-check = 0
  • 连接:保持活动
  • 内容编码:gzip
  • 的Content-Type:text/html的;字符集= ISO-8859-1
  • 日期:星期五,二零一五年十月十六日16点25分13秒GMT
  • 到期日:星期四,1981年11月19日八时52分00秒GMT
  • 保持活动:超时= 15,最大= 73
  • 杂注:无缓存
  • 服务器:Apache
  • 传输编码:分块
  • 有所不同:接受编码
  • X供电-者:PHP/28年3月5日,pl1- gentoo

这是加载在iframe

$.ajax({ 
    url: url, 
    contentType: 'application/x-www-form-urlencoded; charset=iso-8859-1', 
    success: function (data) { 
     var document = $('#searchResults')[0].contentDocument || $('#searchResults')[0].contentWindow.document; 
     document.write(data); 
     document.close(); 
    } 
}); 

任何想法我可以做的就是人物现身JS?

编辑 - 忘记要注意:在页面加载后,开放的开发工具显示了一些有趣的结果:

  • $( '#SearchResult所')的内容()找到( 'textarea的')。 val() - 显示缩写文本块,字符只是丢失

  • $('#searchResults')。contents()。find('textarea')。text() - 显示完整的文本块,全部丢失字符出现在这里

编辑2 - 另一个重点,在IE11,Firefox41和Chrome46中观察到的Windows 7

+0

什么是iframe的标签meta chartset中的编码? –

+0

父文档和iframe都有相同的标签,

回答

0

由于ISO-8859-1根本没有字符,所以您可能希望将UTF-8特殊字符转换为HTML实体。我注意到,您正在使用PHP,那么这个链接可以帮助:

http://php.net/manual/en/function.htmlentities.php

如果不工作,你可以尝试在php.ini中禁用HTTP输入字符转换:

;; Disable HTTP Input conversion 
mbstring.http_input = pass 
;; Disable HTTP Input conversion (PHP 4.3.0 or higher) 
mbstring.encoding_translation = Off 

http://php.net/manual/en/mbstring.http.php

+0

根据http://www.charset.org /charactersets.php?charset=iso-8859-1这些字符是ISO-8859-1的一部分。 –

相关问题