我不确定它是否可能,但有些东西告诉我它可能是。我很感谢专家的指导。
我的基于WordPress的网站从其他网站获取了一些动态内容(“航空中的这一天”小部件):
http://www.youngeagles.com/factzone/thisday.asp
我使用这段代码将数据嵌入到我的网站中:
<div id="this_day_in_history">
<h3>This Day in Aviation History</h3>
<script src="http://www.youngeagles.com/thisday/absolutecr.asp?z=1" type="text/javascript"></script>
</div>
在原始网站上,所有字符都显示完美,但在我的网站上显示时,部分引号和一些法语和西班牙语字符将替换为<?>
。
是否有一行神奇的代码可以让我修复网站上的字符外观?
最好使用jQuery或JavaScript,还是有PHP解决方案?
我很感激你的建议!
编辑:亚当麦克唐纳提供了初始解决方案作为这个问题的答案,但他慷慨编写的代码片段需要进一步调整以达到我的目的。菲尼克斯在一个单独的主题中提供了最终的解决方案: A bit of PHP code wipes out WordPress site
答案 0 :(得分:2)
我发现使用iconv在php中效果最好......类似于:
iconv(“UTF-8”,“ISO-8859-1 // IGNORE // TRANSLIT”,$ str)
它试图将角色与其最佳能力相匹配,如果没有,则将其删除
此外,utf8_encode / decode有时也能正常工作。
编辑:
也许是这样的......
<?php
$contents=file_get_contents('http://www.youngeagles.com/thisday/absolutecr.asp?z=1');
$convertedcontents=iconv("UTF-8", "ISO-8859-1//IGNORE//TRANSLIT", $contents);
echo "<script type=\"text/javascript\">".$convertedcontents."</script>";
?>
编辑2: 以防您想要查看当前代码的更改:
<div id="this_day_in_history">
<h3>This Day in Aviation History</h3>
<?php
$contents=file_get_contents('http://www.youngeagles.com/thisday/absolutecr.asp?z=1');
$convertedcontents=iconv("UTF-8", "ISO-8859-1//IGNORE//TRANSLIT", $contents);
echo "<script type=\"text/javascript\">".$convertedcontents."</script>";
?>
</div>
答案 1 :(得分:0)
问题很可能是由于您的网站使用的编码不兼容以及您从中获取数据的网站。它也可能是小部件获取数据并对其进行UTF8编码/解码。我要做的就是安装firebug,检查返回的数据。然后我会根据需要编辑小部件代码并在响应中添加utf8_encode()
或utf8_decode()
。
编辑:另外,当您请求指示您想要答案的编码的数据时,检查是否存在您可以发送的标志。我已经看到在您告诉服务返回数据之前使用过的标志是否为UTF8。