[英]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.