2012-06-14 30 views
4

在HTML <input>在HTML「name」屬性中可以使用非西方字符嗎?

是否有義務將name屬性設置爲英文字符?

我想稍後使用它,在$_POST['some_utf8_characters_and_not_english_characters']

以後可能會導致問題嗎?

+0

這是不好的做法 –

+5

爲什麼這種不好的做法? – Gary

+0

我不確定'英文字符'是什麼意思?你的意思是拉丁/西方劇本? – poepje

回答

3

根據RFC1866第3.2.4章的規定,屬性的值可以是除分隔符(單引號或雙引號)之外的任何值,不應包含HTML標籤分隔符(<和>)。

但是,當您嘗試使用name作爲參考來訪問DOM元素時,您將不得不測試JavaScript在所有瀏覽器上的行爲(記住您的好朋友MSIE ...)。例如:document.anElementWithPersianNamedocument.forms['aFormWithAPersianName']。所以,如果你使用JS來驗證,和/或Ajax提交表單,你需要確保JS能夠正確處理這個字符集。

在任何情況下,你必須確保:

  1. 你的PHP腳本中使用基於UTF-8的功能時,它是關於字符串操作(我覺得有些功能需要有字符集爲傳遞參數)
  2. 這些腳本本身保存在UTF-8文件
  3. 你正確設置字符的HTML頭和/或PHP的響應頭

最好的辦法設置:創建一個簡單的表單,對它做一些JS技巧,然後讓PHP腳本解析提交的結果並打印出來。

0

這是成功地在我的一個網站工作。沒問題。

<input name="UTF_word" /> 

$_POST['UTF_word'] 

兩者都不會給客戶端帶來任何問題,包括jquery(未在IE中檢查)或服務器端。

相關問題