我有一个PHP脚本来发布文章。在我们添加文件上传支持之前,它工作得非常好。要启用文件上传,我们必须将标记的enctype更改为multipart / form-data。现在,每当我们尝试提交带有多字节字符的文章时,在通过$ _POST收到它们后它们就会变得乱码。如果我们删除表单的enctype,那么它可以正常工作。
我们已经在网上搜索了一个以php为中心的解决方案,但没有运气。标签有一个accept-charset属性,但它在IE中不起作用。在UTF-8 text is garbled when form is posted as multipart/form-data处有一个JSP解决方案,但没有针对PHP的解决方案。所以,请帮忙!
答案 0 :(得分:2)
如果你使用PHP 5.4.x,将mbstring.http_input从“auto”设置为“pass”可以解决你的问题。
答案 1 :(得分:0)
重新安装apache并重新编译php修复它为linux上的一些ppl。
我在本地主机上也有相同的功能,但在生产服务器上这不会发生。我的本地是WAMP,生产是LAMP,一切都有相同的版本。
所以对我来说它适用于:CentOs 6.3,php 5.4,Apache 2.2.15
顺便说一句,在我的本地,mb_detect_encoding()显示'UTF-8',但字符串仍然很乱。