1

我有一个 API,我在其中展示了一些英语和希伯来语的视频。除了用希伯来语写的标题没有显示它的返回符号“??”之外,它一切都运行良好。任何想法 ??

4

3 回答 3

4
  1. 通过在head标签之间添加<meta charset="UTF-8" />来确保您使用的是 UTF-8 。

  2. 确保数据库内容为 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* 或类似方法进行转换 - 正如我上面解释的那样。

于 2012-07-31T15:30:47.100 回答
0

如果数据来自数据库,您需要确保使用正确的编码检索它。如果可能,您应该在查询之前运行 SET NAMES 查询(SET NAMES 'utf8' 或 SET NAMES 'hebrew',取决于数据库中的排序规则)。

于 2012-07-31T10:33:34.890 回答
0

您是否对HTML 文档进行了编码以接受它们?

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

<html lang="he">
...
</html> 
于 2012-07-31T07:50:15.777 回答