我使用PHP函数iconv()将.mdb文件中的希腊语文本从Windows-1253转换为UTF-8,以便在网站上显示它们,而不是使用问号。起初,我在本地机器上使用XAMPP测试脚本时成功了,希腊文本在浏览器中正确显示。我还问了一个关于如何在这里做到这一点的问题:
无法显示希腊字符.mdb文件(PHP&ODBC)
然而,当我在Godaddy的Windows服务器上上传网站时,问号再次出现。我试着删除iconv()函数,看看结果是否不同,它们确实不同(显然是不同类型的编码,但仍然是问号,而不是正确的希腊字符)。因此,据我所知,函数iconv()可以工作,但页面中没有显示字符。我尝试使用其他浏览器,但没有成功。在标题中,html字符集被设置为utf-8。这可能是主办计划的问题吗?除了从数据库中提取的文本外,页面中的其余文本(大部分是希腊语)都会正确显示。
任何帮助都将不胜感激,
Kyris
编辑:php测试代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>Test Page</title>
</head>
<body>
<?php
require('access.php');
$temptype = 'Gardener';
$q = "SELECT TOP 1 ExpenseAccountGreek FROM ExpenseAccount WHERE ExpenseAccount = '$temptype'";
$r = @odbc_exec($dbc,$q);
$greektype[0] = @odbc_fetch_array($r);
$paymentsT[0]['Type'] = iconv('Windows-1253','UTF-8',$greektype[0]['ExpenseAccountGreek']);
echo $paymentsT[0]['Type'];
@odbc_close($dbc);
?>
</body>
</html>
它很可能取决于主机,因为如果服务器在HTTP标头中指定了一个字符集,它会覆盖您在文档中可以说的任何内容。使用例如。http://www.rexswain.com/httpview.html