HTML表单,输入utf-8字符串firefox和IE!

时间:2010-09-09 20:48:35

标签: html utf-8

我在这里构建了表单,当我在firefox 3.6.8上输入utf-8数据时,就像这样:

但它适用于IE.8

alt text

似乎在输入(或填充)输入框时,字符都是大写的。就像你正在举行班次并输入它一样。

有谁知道firefox有什么问题?


编辑:

这是一个简单的表格

<form enctype="multipart/form-data" action="print $_SERVER['PHP_SELF'];" method="post" accept-charset="utf-8">

<br><input name="f_name" type="text"><br>

</form>

2 个答案:

答案 0 :(得分:0)

嗯。当我try this时,似乎工作得很好;我不熟悉阿拉伯语,但是当我输入表单时,似乎字符以小写而不是大写显示。以下是我正在使用的完整示例:

<!DOCTYPE html>
<html>
  <head>
    <title>Test</title>
  </head>
  <body>
    <form enctype="multipart/form-data" method="post" accept-charset="utf-8">
      <input name="f_name" type="text">
    </form>
  </body>
</html>

这适用于Mac OS X上的Firefox 3.6.8。你在运行什么平台?您是否在其他输入框中看到此问题,例如在Google上?

您可能还想检查Content-Type发送的编码。如果您使用Content-Type: text/html; charset=utf-8,一切都会有效。如果您以某种方式丢失<meta charset="utf-8">标题,添加Content-Type标记也会很有帮助。

答案 1 :(得分:0)

在提交任何内容之前输入表单字段时会出现什么情况?因为如果是这样,问题中没有UTF-8。 Web浏览器端的字符串纯粹基于Unicode;只有当您将它们从浏览器移动到服务器或返回时,编码才能发挥作用。

我的猜测是一个简单的字体问题。很明显,从您的屏幕截图中,Firefox使用的是与IE不同的字体,也许该字体是没有正确支持阿拉伯语所需功能的字体,如负责选择每个字符的正确字形变体的上下文连字。检查样式表并在必要时使用Firebug以找出正在应用于该输入的字体。

accept-charset="utf-8"

基本上没用,因为IE处理错了。它使用UTF-8作为后备编码(对于不适合页面当前字符集的字符)而不是 only 编码。

要获取以UTF-8格式提交的表单,您必须确保使用text/html;charset=utf-8标题和/或Content-Type标记将包含该表单的页面作为<meta>投放。< / p>

action="print $_SERVER['PHP_SELF'];"

我假设您错误地粘贴了该值,并且该值实际上位于<?php ... ?>标记中,否则该表单根本不起作用。

这是一个HTML注入漏洞,可能导致跨站点脚本攻击。您应始终使用htmlspecialchars()将要注入的字符串HTML编码为HTML文本内容或属性值。