如何使用PHP显示Unicode数据

Egg*_*abs 21 php mysql unicode

table 'abc' data :

tid    title

  1      ????????????? ?.

  2      ?????? ?????? 


$sql=mysql_query("select title from abd where tid='1'");

$row=mysql_fetch_array($sql);

$title = $row['title'];

echo $title;
Run Code Online (Sandbox Code Playgroud)

OutPut显示如下:

????????????????
Run Code Online (Sandbox Code Playgroud)

但我想展示

????????????? ?.
Run Code Online (Sandbox Code Playgroud)

<?php
    mysql_query ("set character_set_results='utf8'");   

    $sql=mysql_query("select title from abd where tid='1'");

    $row=mysql_fetch_array($sql);

    $title = $row['title'];

    echo $title;

?>
Run Code Online (Sandbox Code Playgroud)

ant*_*rat 37

尝试在这样的mysql_connect函数之后设置charachter编码:

 mysql_query ("set character_set_client='utf8'"); 
 mysql_query ("set character_set_results='utf8'"); 

 mysql_query ("set collation_connection='utf8_general_ci'"); 
Run Code Online (Sandbox Code Playgroud)


Moh*_*enB 9

对于使用的新版PHP,请mysqli在连接到mysql后使用此代码:

mysqli_set_charset($link, 'utf8');
Run Code Online (Sandbox Code Playgroud)


Pas*_*TIN 6

尝试确保浏览器将页面识别为Unicode.

通常,这可以通过让您的服务器发送正确的Content-typeHTTP标头来完成,其中包括您正在使用的字符集.


例如,像这样的东西应该工作:

header('Content-type: text/html; charset=UTF-8');
echo "????????????? ?";
Run Code Online (Sandbox Code Playgroud)


如果这样做,并且您的动态生成的页面仍然没有:

  • 确保MySQL数据库中的数据也是UTF-8
    • 这可以在MySQL中为每个表甚至列设置
  • 并确保使用UTF-8连接到它.

基本上,您的所有应用程序都应使用相同的编码:

  • PHP文件,
  • 数据库
  • HTTP服务器