2014-11-24 39 views
0

我想在我的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"; 
} 


?> 

回答

1

这些是您从浏览器获得的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”); ... ?>

+0

谢谢我在数据库中获得所需的输入,但无法检索并显示它显示???当我从PHP回应 – ashwinbhy 2014-11-24 13:37:41

+0

你最终成功了吗?看来最初你的PHP不是以UTF-8的形式提供的。还是它仍然是数据库定义? – 2014-11-24 14:26:38

+0

我成功地在数据库中获取utf-8 enteries。但是,当我检索它不会显示它。它显示? charachters。 – ashwinbhy 2014-11-25 12:56:37

0

使用8位UCS/Unicode转换格式,对于任何(最好)语言完美的作品

utf8_general_ci

这可能有所帮助。