sql数据库没有非英文字符

时间:2014-11-24 11:57:10

标签: php mysql unicode

我想在我的sqltable中输入हिन्दी。 我在表格中将整理作为utf8_unicode_ci 当我在php页面中回显变量时显示हिन्दी 但在数据库中它会得到奇怪的值,如“हि&#2344”

我的代码如下:

 <?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";
}


?>

2 个答案:

答案 0 :(得分:1)

这些是您从浏览器获得的HTML实体,并在任何浏览器中显示为Unicode字符。

即使您只是从数据库中读取它们以显示它们(一切看起来都很好),最好不要在数据库中存在这种垃圾。

在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”);     ...     ?&GT;

答案 1 :(得分:0)

使用8位UCS / Unicode转换格式,适用于任何(最好的)语言

utf8_general_ci

这可能有所帮助。