使用 jquery 发布和返回数据会损坏 å ä ö
Posted
技术标签:
【中文标题】使用 jquery 发布和返回数据会损坏 å ä ö【英文标题】:Posting and returning data using jquery corrupts å ä ö 【发布时间】:2011-11-03 02:03:30 【问题描述】:这个问题网上有很多资料。尽管如此,我还没有解决它。
我在网页上有一个动态加载的表单。我使用 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然后问题就解决了吗?似乎应该有另一种解决方案。
【问题讨论】:
相关:***.com/questions/26620/… 【参考方案1】:AJAX 使用 UTF-8 编码。如果您的数据不是 UTF-8 格式(例如 Windows 1251 或 ISO-8859-1),您将会遇到麻烦。
在标头中指定不同的编码方案不会将您的数据转换为 UTF-8。它只是告诉客户会发生什么。
我的座右铭:UTF-8 端到端或死亡!
【讨论】:
我也开始怀疑这一点。修复它的缺点是我必须转换所有页面,但我认为这样做是一个“好的商业案例”。 @Nicsoft:您可以尝试在传入的 AJAX 请求上使用utf8_decode()
将输入值转换为 ISO-8859-1,但最好只使用 UTF8 来处理所有内容。
如果我转换我的文件,我应该使用带或不带 BOM 的 UTF-8?
nicksoft:是的。幸运的是,MS Office 21010 现在允许 Word 用户以 UTF-8 保存。在此之前,对于许多 CMS 开发人员来说,这是“文字粘贴”的地狱。
是的 = 与? ;) 从互联网上复制代码(并使用 laint-1...),十六进制编辑器可以修复它时,它是否与地狱中的粘贴相同?以上是关于使用 jquery 发布和返回数据会损坏 å ä ö的主要内容,如果未能解决你的问题,请参考以下文章
带有 åäö(特殊字符)的 Alamofire GET 请求,无效 url
UTF-8 with mysql and php in freebsd swedish chars (åäö) [重复]