<form method="post" action="controller" accept-charset="UTF-8"> ..input text Box .. submit button </form>
提前致谢
解决方法
浏览器根据自己的原则和设置在HTTP请求标头中发送Accept-Charset参数.例如,我的Chrome发送了Accept-Charset:windows-1252,utf-8; q = 0.7,*; q = 0.3.这样的标头通常被服务器端软件忽略,但是可以使用(并且它被设计用于)来确定在服务器响应中使用哪种编码,以防服务器端软件(表单处理程序)在这种情况下)能够在响应中使用不同的编码.
表单元素中的accept-charset属性不会影响HTTP请求标头,也不会影响HTTP请求标头.它旨在指定要用于请求中的表单数据的字符编码,这就是它实际执行的操作.关于这一点的HTML 4.01 spec is obscure,但W3C HTML5 draft puts it要好得多,尽管由于某些奇怪的原因使用复数:“给出了用于提交的字符编码”.我想原因是您可以指定备用编码,以准备浏览器无法使用您的首选编码的情况.例如,Chrome中实际发生的情况是,如果使用accept-charset =“foobar utt-8”,则使用UTF-8.
实际上,该属性用于使数据提交的编码与包含该表单的页面的编码不同.假设您的页面是ISO-8859-1编码的,并且有人在您的表单中键入希腊语或希伯来语字母.浏览器必须进行一些错误恢复,因为这些字符无法在ISO-8859-1中表示. (实际上,他们将字符转换为数字字符引用,这在逻辑上都是错误的,但实际上可能是最好的.)使用< form charset = utf-8>这里有所帮助:无论编码是什么,表单数据都将以UTF-8编码方式发送,可以处理任何字符.
如果您希望告诉表单处理程序它应该在其响应中使用哪种编码,那么您可以在表单中添加一个隐藏(或非隐藏)字段.