可以在HTML“name”属性中使用非西方字符吗?

时间:2012-06-14 12:44:08

标签: php html

在HTML <input>中:

是否有义务将name属性设置为英文字符?

我想稍后在$_POST['some_utf8_characters_and_not_english_characters']中使用它。

以后可能会出现问题吗?

2 个答案:

答案 0 :(得分:4)

根据RFC1866第3.2.4章,属性的值可以是除值分隔符(单引号或双引号)之外的任何值,并且不应包含HTML标记分隔符(&lt;和&gt;)。

但是,当您尝试使用name作为参考访问DOM元素时,您必须测试JavaScript在所有浏览器上的行为(记住您的好朋友MSIE ...)。例如:document.anElementWithPersianNamedocument.forms['aFormWithAPersianName']。因此,如果您使用JS进行验证,并且/或者使用ajax来提交表单,则需要确保JS能够正确处理此字符集。

无论如何,你必须确保:

  1. 你的PHP脚本在使用基于UTF-8的函数进行字符串操作时(我认为某些函数需要将字符集作为参数传递)
  2. 这些脚本本身保存为UTF-8文件
  3. 您正确设置了HTML标头和/或PHP的响应标头中的字符集
  4. 要做的最好的事情:创建一个简单的表单,在其上做一些JS技巧,并使用PHP脚本解析提交的结果并打印它们。

答案 1 :(得分:0)

这已在我的某个网站成功运作。没问题。

<input name="UTF_word" />

$_POST['UTF_word']

两者都没有在客户端出现任何问题,包括jquery(未在IE中检查)或服务器端。