2012-02-03 65 views
1

这可能是一个愚蠢的问题,但它不是我能找到的问题,它是一个我不知道要搜索什么的问题。有一些特殊字符在php中无法正确显示。我正在从xml文件中获取一些信息,并回显它们。来自xml文件的特殊字符无法正确显示,使用php

即:

应该是 - >纽伦堡

回声为 - >Nürnberg

什么寻找任何提示,或如何解决这个问题?

回答

1
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
+0

yeap,thanx。看看我对deceze的回答的评论。 – 2012-02-03 04:50:22

0

尝试不同的角色你是呼应的网页上设置从

http://www.w3schools.com/tags/ref_charactersets.asp

+0

确保,一切都在相同的字符集:你的HTML,表格,数据库,文件......在能够编辑器中打开XML文件以不同的格式保存它,比如UTF-8。 – djot 2012-02-03 03:45:58

0

你可以在你的HTML头下面的meta标签尝试。

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
0

“我从XML文件中采取了一些信息,和回声-ING他们。”

由于Windows命令行不使用UTF8字体,因此不能正确支持utf8。

只需将文件放入可通过Web服务器访问的某个位置,并通过Web服务器调用该文件进行测试即可。 或者管脚本的输出到一个文本文件:

PHP的test.php> output.txt的

,要么打开output.txt的是UTF8的编辑器或使用UTF8能“尾巴”计划。

test.php的

<?php 
    echo "Nürnberg"; 
?> 

从命令提示符下运行:

php test.php 

Nürnberg 

通过Web服务器http://localhost/test.php

Nürnberg 
+0

这不是*字体*问题,它是*编码*问题。另外,你为什么特别提到Windows命令行? – deceze 2012-02-03 04:04:57

+0

因为每6个月我忘了PHP的行为像这样在Windows命令行中,我花一个小时寻找一个编码错误,当我记得它只是WINDOWS上不是很好。 – Danack 2012-02-03 04:20:00

0

调用还有就是你的XML字符编码之间的不匹配以及您从PHP输出的内容。很可能,一个是UTF-8,另一个是ISO-8859。

在PHP端,你可以把这个有头指令

<?php 
header('Content-Type: text/plain; charset=ISO-8859-1'); 
header('Content-Type: text/plain; charset=utf-8'); 
?> 

和/或输出HTML

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

在XML方面,最优质的文本编辑器允许您在保存文件时指定字符编码。 (例如WordWrangler在Mac)

如果XML文件确实是在ISO-8859,你可以使用utf8_encode()将其转换为UTF-8作为你读它。

An in-depth discussion of PHP and character encoding

+0

嘿,我没有意识到xml-feed在第一行有这个。我总是看到它,但我认为这只是一个必需的标签,对我们来说没有多大意义,而是指向一个xml读取器软件。看看我对deceze的回答的评论。它有点强硬。 <?XML版本=“1.0”编码=“ISO-8859-1”?> – 2012-02-03 04:58:06

+0

不知道你使用它不可能肯定地说什么库,但我怀疑你的AJAX调用被悄悄转化ISO-8859到UTF -8。只需使用该utf8_encode()函数即可转换从XML文件读取的任何数据。 (如果你发现我的回答是有用的,请考虑给它一个给予好评。) – 2012-02-03 05:40:24

+0

我不能。我只是在12代表:(笑 – 2012-02-03 13:34:56

1
+0

这是UTF-8 meta标签的问题。但是这里的东西奇怪的是,有人应该知道,或试图找。 我有这些项目的列表,让调用它存储我也。有一个虚拟购物车,我们把它叫做车。 商店获取从数据库/ XML页面加载的信息,并输出HTML。该车会从数据库/ XML此完全相同的信息,但通过Ajax,而不是页面加载,并输出它。商店不会输出正确的字符,而购物车没有。他们没有任何声明的字符集。这是如何解释? – 2012-02-03 04:48:55