我有一个 API,我在其中展示了一些英语和希伯来语的视频。除了用希伯来语写的标题没有显示它的返回符号“??”之外,它一切都运行良好。任何想法 ??
3 回答
通过在head标签之间添加<meta charset="UTF-8" />来确保您使用的是 UTF-8 。
确保数据库内容为 UTF-8。如果不是 UTF-8,则需要将数据库数据从数据库中使用的编码转换为 UTF-8,然后再将其推送到 Web 浏览客户端,如下所示: $str = mb_convert_encoding($str, "UTF- 8", "数据库编码使用"); 更多信息和示例: http: //php.net/manual/en/function.mb-convert-encoding.php
两者之一将解决您的问题。
更新
可能有点牵强,但请确保您的浏览器也能够显示希伯来字体类型。
事实上,您没有告诉我们您如何检查您的数据库(使用客户端或通过浏览器),我们也不知道您如何测试显示。
为避免调试工作中出现任何“隐藏”错误,请尝试以下代码:
<?php
/*
Make sure the web browser receives a header telling it there's UTF-8 inside.
*/
header('Content-Type: text/html; charset=UTF-8');
/*
Write a title that will display correctly
if there's no font-related issue in your browser.
*/
echo('<h1>זהו מבחן.</h1>');
/*
Now connect to database,
and use a simple SELECT to fetch something from the database.
Replace YOUR-MYSQL-USERNAME, YOUR-MYSQL-PASSWORD and YOUR-MYSQL-DATABASE
with your individual values...
*/
$dbh = mysql_connect("localhost","YOUR-MYSQL-USERNAME","YOUR-MYSQL-PASSWORD");
if(!$dbh)
{
exit('Could not connect: ' . mysql_error());
}
$result = mysql_query('SELECT * FROM YOUR-MYSQL-DATABASE LIMIT 1',$dbh);
mysql_close($dbh);
/*
Now dump it nicely to the screen and exit.
*/
echo('<pre>');
var_dump($result);
echo('</pre>');
exit();
?>
这将帮助您解决问题。
如果它不能很好地显示您的希伯来字体,则很可能是字体和浏览器问题。
在任何其他情况下,您的数据库不是 UTF-8,您需要使用 *mb_convert_encoding* 或类似方法进行转换 - 正如我上面解释的那样。
如果数据来自数据库,您需要确保使用正确的编码检索它。如果可能,您应该在查询之前运行 SET NAMES 查询(SET NAMES 'utf8' 或 SET NAMES 'hebrew',取决于数据库中的排序规则)。
您是否对HTML 文档进行了编码以接受它们?
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<html lang="he">
...
</html>