我正在試着製作一個顯示日文字符的頁面。這些日文字符存儲在我的數據庫中。我已經完成了我的研究並嘗試了很多建議,但是我的日語角色仍然作爲問號返回。目前,這是我的代碼的外觀:在PHP頁面上顯示來自MySql數據庫的日文字符
<?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]日本串它的工作我已經檢查。我在這裏錯過了什麼嗎?我不知道爲什麼編碼在字符串手動輸入,但不是我從數據庫中獲得的字符串。
你確定數據庫中字符串的字段能夠保存UTF8嗎? – AStupidNoob
是的。我的數據庫中的所有字符串都是日語字符 – user1597438
'如果未指定from_encoding,則將使用mb_convert_encoding上PHP.org的內部編碼。我想這可能是你想要的,但請嘗試完全按照在數據庫中指定它(選擇其中的一個並在mb_convert_encoding http://www.php.net/manual/en/mbstring.supported的最終可選參數中查找它-encodings.php)。我猜測是從mb_convert_encoding無法將輸入分辨率轉換爲UTF-8 – AStupidNoob