如何用PHP从数据库中编码UTF8

如何用PHP从数据库中编码UTF8,php,utf-8,Php,Utf 8,我的数据库有简单的PHP测试API。它查询MySQL数据库并返回JSON。问题是,有些值是西里尔文的,我得到的只是一个问号。我的PHP代码如下所示: <?php mysql_connect ( "localhost", "root", "" ); mysql_select_db ( "uni_database" ); $q = mysql_query ( "SELECT * FROM `students`" ); while ( $e = mysql_fetch_assoc ( $q )

我的数据库有简单的PHP测试API。它查询MySQL数据库并返回JSON。问题是,有些值是西里尔文的,我得到的只是一个问号。我的PHP代码如下所示:

<?php
mysql_connect ( "localhost", "root", "" );
mysql_select_db ( "uni_database" );
$q = mysql_query ( "SELECT * FROM `students`" );
while ( $e = mysql_fetch_assoc ( $q ) )
    $output [] = $e;
print  (json_encode( $output ) );
mysql_close ();

?>


有人知道如何将值从DB编码为UTF8吗?

创建数据库时,请确保将其设置为UTF8

CREATE DATABASE `myDb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

然后将字段类型设为text

是的,这很有帮助,但现在我得到了如下结果:u0441\u0442\u0443\u0434\u0435\u043d\u0442。。。那么,有没有办法将其转换成西里尔文字?不要设置名称!看@Miller这正是你想要的!这是JSON编码的字符。@Miller是JSON编码的西里尔文。@deceze不要使用mysql!
mysql_connect ( "localhost", "root", "" );
mysql_select_db ( "uni_database" );
mysql_query("set character_set_connection=utf8");
mysql_query("set names utf8");
...