如何正确编码/解码通过POST发送的变音符号

问题描述:

这是我的问题,一直让我头痛。我需要我的网络应用程序来妥善处理任何东欧语音符号(主要是ĂŢ))。数据库正确处理它们,并且php脚本正确处理它们(所有php脚本都使用utf-8编码),但是在处理表单时存在问题。如何正确编码/解码通过POST发送的变音符号

例如,插入下面的数据库,它的正确处理,字符编码正确,保存得当,正确显示:

$insert_value = htmlentities('ă Ă î Î ş Ş ţ Ţ â Â',ENT_COMPAT, "UTF-8"); 

但是,如果我在文本/ textarea的输入相同的字符串输入并使用POST发送它:

$insert_value = htmlentities($_POST['test_string'],ENT_COMPAT, "UTF-8");  

这将返回一个空字符串。

我检查了脚本使用Firefox接收的POST,而不是'şţŢ'字符我得到奇怪的符号(ºªþÞ),所以我猜这就是为什么htmlentities返回空。

我试图在窗体上设置加密类型为multipart/form-数据,它似乎发送正常,但随后将ヶ辆到它仍然在某种程度上螺丝起来(例如,如果$_POST['ta'] = ăĂîÎşŞţŢâÂ, htmlentities($_POST['ta'],ENT_COMPAT, "UTF-8") returns $kappa;

编辑:很多感谢欺骗,该链接帮助我处理我的Web应用程序的编码,而无需任何调用。我将这篇文章推荐给任何在php,html和数据库之间使用变音符号时遇到麻烦的人。

+1

不要HTML编码进入数据库的数据,[在Web应用程序中处理Unicode前后](http://kunststube.net/frontback/) – deceze 2013-02-19 10:48:17

+0

呃,谢谢。似乎在表单上修改了accept-charset =“utf-8”。午餐休息时间之后,我将不得不阅读一遍,以便找到不在表单内的输入的解决方案。 – Bogdan 2013-02-19 10:53:01

+0

再次感谢你,如果你想创建一个简短的答案,只是为了标记问题的答案,我会赞赏它。 – Bogdan 2013-02-19 11:36:06

高兴评论...帮助

不要说进入数据库,Handle Unicode Front To Back In A Web App HTML编码数据。有很多这样做的陷阱,上述文章通过最大的。

+0

谢谢,现在花一整天的工作时间来改变一大堆表单和ajax请求。 – Bogdan 2013-02-19 12:09:33