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



是否有HTML表单使用的默认字符集?或者是否使用了默认的接受字符集属性?

我们在网上表格中遇到一些字符和字符集的问题。

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

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

我不确定为什么这里使用了两种不同的字符集——这个决定有点早于我的时代,不能轻易改变。

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

我已经假设到目前为止,即使用户输入一个字符的形式,不是在ISO-8859字符集,页面将使用字符集从meta标签发送数据到服务器时;导致数据库中显示奇数实体。这听起来像一个可行的解释吗?如果是的话,更改HTML页面的内容类型是解决问题的合理方法吗?

欢呼。

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

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

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

最新更新