2013-01-11 24 views
1

我有一個小問題... 如果我使用php函數轉換utf8字符串,如André php函數url encode('André')返回Andr% C3%A9。php urlencode不會返回與w3school相同的值

,但如果我有一個看看w3school參考表,爲電子商務適當進行urlencode是E9%...

在這裏看到:www.w3schools.com/tags/ref_urlencode.asp

我怎樣才能在PHP中正確的URL編碼字符串?

+0

你使用什麼編碼? – vanneto

+1

另一個不相信w3schools引用的理由 –

+0

也許它只是'é'的不同變體? –

回答

1

不同的是,在W3Schools的編碼的參考值是ISO-8859-1編碼,而你的版本使用UTF-8編碼。由vvr02給出的例子無關緊要,因爲HTML文檔中提供的編碼不會影響保存文件時使用的編碼。

將文件保存爲UTF-8格式的版本返回é的utf-8表示形式,而保存在iso-8859-1(或類似的)中的vvr02版本返回iso-8859- 1代表é。

它們都是正確的,具體取決於上下文。

+0

非常感謝你的這個提示!是的我的數據存儲在數據庫與utf8編碼...問題是,我必須通過Web服務發送這些數據,他們不接受我的utf8字符串,所以我不得不將其轉換爲url編碼的字符串.. if我第一次使用函數utf8_decode(),然後urlencode我得到正確的字符串... – schurtertom

0

剛纔我檢查它是給予正確的安息。這是它給「安德烈%E9」

<!DOCTYPE html> 
<html><head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8"> 
</head> 
<body> 
<?php 
    echo urlencode("André"); 
?> 
</body> 
</html> 
+0

檢查上面的代碼 – vvr02

+0

我試圖刪除utf-8也是給出正確的。 – vvr02

-1

Andr%E9沒有比Andr%C3%A9更「正確」。正如人們已經解釋的那樣,這只是爲了處理文檔編碼,可以通過meta標籤或HTTP標頭進行設置。

相關問題