繁体   English   中英

在PHP页面上显示MySql数据库中的日语字符

[英]Displaying Japanese characters from MySql database on PHP page

我正在尝试制作一个显示日语字符的页面。 这些日语字符存储在我的数据库中。 我已经进行了研究,并尝试了许多建议,但是我的日语字符仍然返回为问号。 目前,这是我的代码的外观:

<?php


 $con=mysqli_connect("host", "user", "pw", "db");   
if (!$con)
{
    die('Failed to connect to mySQL: ' .mysqli_connect_errno());
}   
}
?>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body>
<?php
    mb_internal_encoding('UTF-8'); ?>
    <center>
        <div id="fb-root"></div>
        <form method="POST" id="myForm">
            <h1>
                <?php 
                $title = mysqli_query($con, "SELECT `title` FROM titles WHERE c1='a' or c2 ='b'") or die("ERROR: ". mysqli_error($con));
                $title_str = mysqli_fetch_array($title);

                $mystr = mb_convert_encoding($title_str[0], "UTF-8");
                echo "test: ".$mystr;
                        ?>
        </h1><br/>
    </form>
</body>

我已经检查了我的字符编码是否可以工作,并且如果我将$ title_str [0]替换为日语字符串,它也可以工作。 我在这里想念什么吗? 我不确定为什么编码对我手动输入的字符串有效,但不适用于我从数据库获得的字符串。

连接到MySQL后,尝试使用SET NAMES utf8:

$con=mysqli_connect("host", "user", "pw", "db");   
if (!$con)
{
    die('Failed to connect to mySQL: ' .mysqli_connect_errno());
}

mysqli_query($con, "SET NAMES 'UTF8'") or die("ERROR: ". mysqli_error($con));

手册所述

SET NAMES指示客户端将用于将SQL语句发送到服务器的字符集...它还指定服务器用于将结果发送回客户端的字符集。

之后,无需使用mb_convert_encoding

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM