无法使用PHP在MYSQL数据库中存储阿拉伯语
我一直试图找到过去几个小时的解决方案,但无法这样做.我已经尝试了互联网和本论坛上的每一个可能的解决方案,但似乎没有任何工作.这是问题所在.
我想存储用户将在mysql数据库中的表单的textarea中键入或粘贴的阿拉伯语数据.该网站是阿拉伯语,形式只包含这一个textarea. 重点: 该网站正确显示静态阿拉伯语内容.整个网站都使用utf8字符集.所以这不是问题. 表(主页)和内容字段(内容)都设置为utf8_unicode_ci校对,因此它也不是问题. 表单设置为accept-charset =’utf-8′,这也不是问题. 当我在表格中使用phpMyAdmin插入阿拉伯语文本时,我完全没有任何问题. 事实上,当在网站上检索到表格中的阿拉伯语文本(通过phpMyAdmin输入)时,它完全显示出来. 但是只要阿拉伯数据输入文本区域并发送到DB就可以使用插入查询数据转换成???? 我在用 mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8'); 连接后,这根本不是问题.正如我之前所说,数据可以检索到.我上传了两张图片.证明我的问题. 我真的被困在这里,你可以看到我已经采取了所有可能的步骤来解决这个问题,但这种行为真的很奇怪.请帮忙. 我用来将数据插入db的代码是: $content=$_POST["content"]; echo $content; $sql="update home set content='$content'"; $result=mysql_query($sql) or die(mysql_error()); 您可以看到第二个echo语句.我添加它来调试问题.数据在此回声中完美显示.我认为这个问题在查询中出现了问题. 解决方法
看起来服务器端的所有代码都正常工作.当浏览器将表单提交回服务器然后数据错误或被错误解释时,似乎发生错误.
1)请确认您已安装Multi-Byte扩展.如果不这样做,则PHP可能无法正确解释浏览器中的字符. http://php.net/manual/en/book.mbstring.php 2)您能否仔细检查浏览器是否真正将页面选为UTF8.浏览器可能不确定页面所在的字符集,但仍然正确显示阿拉伯字符,因为它正在猜测如何显示它们.首先. 在您的HTML中,添加此元标记: 还要在脚本顶部添加此PHP标头: header(“Content-Type:text / html; charset = UTF-8”); 3)如果这些不起作用,请您在浏览器中查看实际的表单提交,使用Chrome中的开发人员工具或Firefox中的Firebug来查看提交的确切内容. 例如我刚做了一个测试页面,将一些阿拉伯语文本提交到我服务器上的测试页面.在请求中,我可以看到表单被编码为 Content-Length: 61 test=%26%231607%3B%26%231594%3B%26%231594%3B%26%231601%3B&go= 我可以看到将文本分成单个字符 %26 %231607 %3B %26 %231594 %3B %26 %231594 %3B%26 %231601 %3B 即阿拉伯字符正在为我编码 – 也许你会看到不同的东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |