html form utf8,HTML表单,输入utf-8字符串firefox和IE!(HTML form, inputing utf-8 string firefox and IE !)...

HTML表单,输入utf-8字符串firefox和IE!(HTML form, inputing utf-8 string firefox and IE !)

我在这里构建表单,当我在firefox 3.6.8输入utf-8数据时,它是这样的:

但它适用于IE.8

zta3G.png

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

有谁知道firefox有什么问题?

编辑:

这是一个简单的形式

I built form here, When I input utf-8 data to it at firefox 3.6.8 it is like this:

but it works fine with IE.8

zta3G.png

It seems that while typing (or filling) the input box, the characters are all uppercase. Just like that you are holding shift and type it.

anyone knows what is the problem with firefox?

edit :

it is a simple form

原文:https://stackoverflow.com/questions/3680467

更新时间:2019-09-04 17:43

最满意答案

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

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

accept-charset="utf-8"

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

要获取以UTF-8提交的表单,您必须确保包含表单的页面使用Content-Type标头和/或标签作为text/html;charset=utf-8 。

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

我假设你错误地粘贴了它,而且值实际上是在<?php ... ?>标签中,否则表单根本不起作用。

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

Is that what appears when you type in a form field, before submitting anything? Because if so, there is no UTF-8 in the problem. Strings at the web browser side are purely Unicode-based; it's only when you're moving them from the browser to the server or back that encoding matters come into play.

My guess would be a simple font problem. Clearly from your screenshot, Firefox is using a different font to IE, and perhaps that font is one without proper support for features necessary to Arabic like the contextual ligatures that take care of choosing the right glyph variant of each character. Check the stylesheets and use Firebug if necessary to find out what font is being applied to that input.

accept-charset="utf-8"

is basically no use, because IE handles it wrong. It uses UTF-8 as a fallback encoding (for characters that don't fit in the page's current charset) instead of the only encoding.

To get a form that submits in UTF-8, you must ensure that the page containing the form is served as text/html;charset=utf-8 using a Content-Type header and/or tag.

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

I'm presuming you've mis-pasted that and the value is actually in a <?php ... ?> tag, otherwise the form wouldn't work at all.

This is an HTML-injection hole, potentially leading to cross-site scripting attacks. You should always HTML-encode strings you are injecting into HTML text content or attribute values, using htmlspecialchars().

相关问答

这个“演员”在哪里发挥作用? 我不确定你的应用程序是什么,但有几个地方你可能会破坏角色。 首先,假设这是某种Java EE应用程序,请确保已在servlet中设置了请求编码。 请参阅HttpServletRequest的setCharacterEncoding方法。 你应该在那里使用“UTF-8”。 其次,您应该确保在表单变量上设置了accept-charset =“UTF-8”属性。 (注意 - 根据我的经验,如果页面首先采用UTF-8编码,但很少安全而不是遗憾,这很少会出现问题)。 最后确保在

...

标签应该是打开

标签之后的第一个标签,因为它告诉浏览器文档的其余部分使用什么字符集(浏览器会在之前猜测字符集)这点)。 来源: (参见注释部分) 请注意,并不是必须将它作为第一个标记(它可以出现在前512个字节中的任何位置),但这样做是一个很好的经验法则,并且无需在所有html文档上计算512个字节。 The tag should

...

我没有注意到重要的一点。 正如icktoofay指出的那样,您的JSON已经损坏: >>> "Tilf\u00c3\u00b8j regnskab"

"Tilføj regnskab"

你有两个字符( \u00c3\u00b8 )来表示ø (这显然是一个字符)。 由于ø是U + 00F8,它应该是\u00f8 : >>> "Tilf\u00f8j regnskab"

"Tilføj regnskab"

问题在于生成该JSON的PHP脚本,而不是消耗它的JavaScript代码。 可能性: 您

...

您看到的URL更改是完全正常的:浏览器需要对请求进行URL编码以创建有效的URL查询字符串。 PHP自动URL解码所有$ _GET参数,因此您不需要关心这一点。 首先:你的html的字符集是否正确设置为utf-8? http://www.w3.org/International/O-charset HTML5:

其他html:

...

保罗的回答没有错,但它不是故事的唯一部分 您需要完成以下每个步骤以确保您获得一致的结果; 重要提示:这些步骤必须在您的Web应用程序的每个页面上执行,否则您将遇到问题(Paul的评论强调)。 每个页面需要使用UTF-8编码进行保存,因为有些IDE会默认使用Windows-1252 。 每个页面都需要添加以下行作为页面中的第一行,以便更轻松地将它与其他一些值一起放入包含文件中,以便随时随地将它们包含在每个页面中。 包含文件 - page_encoding.asp

...

HTML是对的吗? 你似乎在使用HTML5

%>

...

...

<

...

这是在您提交任何内容之前键入表单字段时出现的内容吗? 因为如果是这样,问题中没有UTF-8。 Web浏览器端的字符串纯粹基于Unicode; 只有当您将它们从浏览器移动到服务器或返回时才会发生编码问题。 我的猜测是一个简单的字体问题。 很明显,从您的屏幕截图中,Firefox使用的是与IE不同的字体,也许该字体是没有正确支持阿拉伯语所需功能的字体,就像上下文连字一样,它负责选择每个字符的正确字形变体。 检查样式表并在必要时使用Firebug以找出正在应用于该输入的字体。 accept-charse

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值