这是一个网上有很多信息的问题。不过,我还没有解决它。
我在网页上有一个动态加载的表单。我使用jquery $ .post提交它。我的页面适用于瑞典人,因此需要与åäö合作。
将数据发布到服务器时,它会将数据加载回新表中。退回的åäö已损坏。示例åååäääööö=åååäääööööÃ
服务器端是php。我将所有返回内容的页面编码到浏览器中,如下所示:
<?php header('Content-type: text/html; charset=ISO-8859-1'); ?>
我在服务器端尝试过utf8_encode和utf8_decode。实际上没有区别。
我试过这个:encodeURIComponent($(this).serialize())其中$(this)是要提交的表单。当然,这不起作用,我不知道如何编码像$(this)这样的对象。
我认为这是许多人所做的事情,但它似乎不是一个标准的解决方案。
因此,我需要帮助的是如何使用javascript / jquery / etc发布表单。并在服务器端处理它,返回它,并且它们看起来应该如此。如果服务器收到utf8,那就完全没问题了。原则应该只使用UTF8然后问题解决了吗?似乎应该有另一种解决方案。
答案 0 :(得分:4)
AJAX使用UTF-8编码。如果您的数据不是UTF-8格式(例如Windows 1251或ISO-8859-1),那么您将遇到麻烦。
在标头中指定不同的编码方案不会将数据转换为UTF-8。它只是告诉客户期待什么。
我的座右铭: UTF-8端到端或死!