4

在 HTML 中<input>

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

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

以后有可能出问题吗?

4

2 回答 2

4

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

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

在任何情况下,您都必须确保:

  1. 当涉及字符串操作时,您的 PHP 脚本使用基于 UTF-8 的函数(我认为某些函数需要将字符集作为参数传递)
  2. 这些脚本本身保存在 UTF-8 文件中
  3. 您在 HTML 标头和/或 PHP 的响应标头中正确设置了字符集

最好的办法:创建一个简单的表单,在上面做一些 JS 技巧,然后让 PHP 脚本解析提交的结果并打印出来。

于 2012-06-14T14:45:53.663 回答
0

这在我的一个网站上成功运行。没问题。

<input name="UTF_word" />

$_POST['UTF_word']

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

于 2012-06-14T14:52:56.853 回答