这是来自firebug的数据
action=saveOrder&name=Aprova%C3%A7%C3%A3o+dos
在服务器端我试图将其保存到数据库,名称列有整理 - utf8_general_ci
这是我的PHP脚本 1。
$name= htmlentities(str_replace("+", " ", rawurldecode($_POST["name"])));
我也试过了 2。
$name= html_entity_decode(str_replace("+", " ", rawurldecode($_POST["name"])));
如果您看到此链接 http://writecodeonline.com/php/ 2.件在那里工作,但是当我将它保存在数据库中时,它没有正确保存 使用最后一个代码片段,保存的值是Aprovação dos和案例1。 它保存了这个Aprovação dos
应该保存在数据库中的值是Aprovaçãodos
function saveorders() { var params={}; params.action='saveOrder'; params.name=$("#cliente_nome").val(); $.post('saveorders.php',params,function(data) { alert(data); }); }
PHP代码
<?php mb_internal_encoding("UTF-8"); include_once ("clase.php");// Database connection file session_start(); $name=html_entity_decode(str_replace("+", " ", rawurldecode($_POST["name"]))); Policy::saveOrders($name); ?>
任何帮助表示赞赏
答案 0 :(得分:2)
在网站和数据库之间创建链接时,请将其设置为UTF-8。另外,使用ANSI作为UTF-8(没有BOM的UTF-8编码)保存您的PHP页面。确保您的数据库和表也使用UTF-8编码。将php的内部编码设置为UTF-8。
答案 1 :(得分:0)
确保文件编码(.php文件本身)是UTF-8。
此外,添加标题(&#39; Content-Type:text / html; charset = UTF-8&#39;);到你的UTF-8页面,看它是否有帮助。
答案 2 :(得分:0)
以下是我解决此问题的步骤
params.name=$("#cliente_nome").val();
params.name=escape($("#cliente_nome").val());
<?php mb_internal_encoding("UTF-8"); iconv_set_encoding("internal_encoding", "UTF-8"); include_once ("clase.php");// Database connection file session_start(); $name=str_replace("+", " ", rawurldecode($_POST["name"])); Policy::saveOrders($name); ?>