我有一个API,其中我展示了一些英语和希伯来语的视频。除了用希伯来语写的标题之外它一切都运行正常而不显示它的返回标志“??” 有什么想法??
答案 0 :(得分:4)
通过在 head 标记之间添加&lt; meta charset =“UTF-8”/&gt; ,确保您提供UTF-8。< / p>
确保数据库内容为UTF-8。 如果不是UTF-8,则需要将数据库数据从数据库中使用的编码转换为UTF-8,然后再将其推送到Web浏览客户端,如下所示:$ str = mb_convert_encoding ($ str,“UTF-8”,“ DATABASE-ENCODING-USED ”);更多信息和示例: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 *或类似转换 - 如上所述。
答案 1 :(得分:0)
您是否已对HTML document to accept他们进行了编码?
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<html lang="he">
...
</html>
答案 2 :(得分:0)
如果数据来自数据库,您需要确保使用正确的编码检索数据。如果可能,您应该在查询之前运行SET NAMES查询(SET NAMES'utf8'或SET NAMES'hebrew',具体取决于数据库中的排序规则。)