2013-05-16 65 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.