php – 如何通过表单传输字符?
我一直在使用表单,并看到< meta charset =“ISO-8859-7”>标签对将在文本区域中键入的文本进行编码.事情是用于存储文件的编码方法不是. 我已经看到,如果键入的字符不是< meta charset =“ISO-8859-7”>所规定的编码的一部分.标签,该字符将为referenced(& #D;) 我假设表单是从编码speciefied发送字节序列. 例如,使用< meta charset =“ISO-8859-7”> 这个char不是编码的一部分,但它必须作为它代表A5的位置的一个字节发送,无论它是否可以表示(这通常由任何编辑器制作). 但不是,表单不会将其作为字节发送,而是字符为referenced. 码: index.php文件:
encode.php:
源代码中的结果:
注意:我已经测试过更改用于存储文件的编码. 在index.php中: 并使用encode.php: 最佳答案
问题是表单编码不支持键入的字符.
据我所知,如果用户在表单编码不支持的表单字段中输入字符,则HTML 4和HTML 5都不指定浏览器应该执行的操作. HTML 5是否指定不支持的字符应替换为ASCII?在URL1的查询部分(因此在GET表单提交?),但我找不到POST表单的任何内容. 似乎所有浏览器(或至少IE,FF,Chrome,Opera)都同意将不支持的字符编码为XML实体. (更好的方法可能是警告用户并阻止表单提交,但这是桥下的水.) 当然,解决方案是一直使用UTF-8.然后编码支持所有字符,并且不会出现此问题. 12.6.3 Resolving URLs. HTML 5,W3C Working Draft 25 May 2011,第8.1项:
有趣的事实:以上仅适用于IRI的查询部分(问号后面的部分).路径部分始终使用UTF-8编码.主机名当然是用Punycode编码的.头脑很难看. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |