2013-05-16 40 views
2

亲爱的stackoverflow'ers,用%CC%88解码字符串 - 用PHP编码?

我有这个问题,驱使我绝对疯狂。我希望有些天才(或者只是一个普通人)能帮助我找到答案。

我想要什么?

  1. 使用Excel,我一个字符串(文件路径)发送到PHP文件
  2. 的PHP文件中获取的路径
  3. 的PHP文件回声的路径

的路径以下内容:Financiën/file.xls(请注意ë)

但是,当我回显路径时,它会给出Financie%CC%88n/file.xls)。

我知道这是某种转换(它意味着e应该与¨结合),但是我如何用php将它解码为正常的utf8?!?!

我找遍了所有的互联网,但我不知道如何找到正确的答案:■

谁是我心目中的英雄? ;)

回答

3

它看起来像你想urldecode($path);

,如果您将解码后的字符串到浏览器的HTML,像设置您的文档编码:

<meta charset="utf-8" /> 

文本模式设置正确的头第一个:

header('Content-Type: text/plain; charset=utf-8'); 
+0

嗨!我试过了,但那不起作用:当我这样做时:“FinancieÌn/ file.xls”。也奇怪... – user2391587

+0

这是正确的...工程就好** [这里](http://codepad.viper-7.com/b0EBJM)** – brbcoding

+0

嘿,这很奇怪!当我在键盘上输入“echo urldecode('Financie%CC%88n/file.xls')”时,它会吐出正确的“Financiën”,但是当我将相同的代码从键盘拷贝到我自己的php文件中时给我“FinancieÌn”。这怎么可能? (尽管我们正在接近......) – user2391587

1

我在这里遇到了类似的问题,这里是“u%CC%88”。原信是普通的德语“Umlaut”“ü”。 “%CC%88”似乎只是“u”上方的点。当您尝试用Windows 7资源管理器中名称为“u%CC%88”的文件重命名文件时,将光标置于'ü'后面并将其删除,然后将'u'留下。

注意,没有程序生成这样的字符,它应该生成正常的UTF-8“ü”或在你的情况下正常的UTF-8“ë”。

即使你的HTML设置为

<meta charset="utf-8" /> 

HTML验证告诉你

文本运行是不是在Unicode范式C.