sqldatabse不采取非英文字符
问题描述:
我想在我的sqltable中输入हिन्दी。 我做了排序规则utf8_unicode_ci在表 当我在PHP页面的显示हिन्दी 呼应的变量,但在数据库中它会很奇怪值分别为“ह ि &#2344”sqldatabse不采取非英文字符
我代码如下:
<?php
include("connection.php");
mysqli_set_charset($con,'utf8');
$var=$_POST['var'];
$var1=$_POST['var1'];
$query="insert into test values('$var','$var1')";
if($result=mysqli_query($con,$query))
{
echo $var;
echo $var1;
echo "success";
}
?>
答
这些是您从浏览器获得的HTML实体,并且在任何浏览器中显示为Unicode字符。
即使你只是从数据库中读取它们以便在HTML中显示它们(一切看起来都不错),最好不要在数据库中产生这种垃圾。
在HTML表单传递的形式为UTF-8和说,服务器接受UTF-8回:
<form action="... .php" method="post" accept-charset="UTF-8">
(我假设的页面已经提供的UTF-8,它的内容类型)
$_POST
将保存纯Unicode字符而不是实体。
<?php
header("Content-Type: text/html; charset=utf-8");
//后,立即连接 的mysql_query( “SET NAMES UTF8”); ... ?>
答
使用8位UCS/Unicode转换格式,对于任何(最好)语言完美的作品
utf8_general_ci
这可能有所帮助。
谢谢我在数据库中获得所需的输入,但无法检索并显示它显示???当我从PHP回应 – ashwinbhy 2014-11-24 13:37:41
你最终成功了吗?看来最初你的PHP不是以UTF-8的形式提供的。还是它仍然是数据库定义? – 2014-11-24 14:26:38
我成功地在数据库中获取utf-8 enteries。但是,当我检索它不会显示它。它显示? charachters。 – ashwinbhy 2014-11-25 12:56:37