HTML表单,字符集和accept-charset属性

时间:2011-09-28 11:11:19

标签: html character-encoding

HTML表单是否使用默认字符集?或者是否使用了默认的accept-charset属性?

我们的在线表单中遇到了字符和字符集的一些问题。

HTML页面设置为使用字符集ISO-8859-1(使用content元标记),但表单中没有设置特定的accept-charset属性。

后端的数据库使用UTF-8编码。

我不确定为什么这里使用了两个不同的字符集 - 这个决定在我的时间之前有点,而且不容易改变。

大多数时候,一切都很愉快。当有人输入一个未包含在ISO-8859字符集中的字符时会出现问题 - 它在浏览器中正确显示,但作为未知实体进入后端。 真的奇怪的是,然后它正确地将传回到了浏览器。

到目前为止,我假设即使用户将字符输入到不在ISO-8859字符集中的表单中,页面也会在将数据发送到meta标签时使用{{1}}标记中的字符集。服务器;导致奇数实体显示在数据库中。这听起来像是一个可行的解释,并且 - 如果是这样 - 改变HTML页面的内容类型是否是合理解决问题的方法?

干杯。

1 个答案:

答案 0 :(得分:2)

浏览器将在提供页面的同一个字符集中的输入中发送文本。 accept-charset会导致问题,如果您使用它,请确保它与您的网页具有相同的字符集。

它是一个未知实体的原因是因为您的数据库将其视为UTF-8。但当它返回到页面时,它只是字节,这次被视为ISO-8859。

但是,如果您在文本中使用任何数据库的字符串函数,如果它将其视为UTF-8,则可能会导致问题。