我已经使用PHP函数iconv()将.mdb文件中的希腊文本从Windows-1253转换为UTF-8,以便在网站上显示它们而不是问号。起初,我在本地计算机上使用XAMPP测试我的脚本时成功,并且希腊文本在浏览器中正确显示。我还问了一个如何在这里做的问题:
Cannot display Greek characters .mdb file (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>
答案 0 :(得分:0)
它可能完全依赖于主机,因为如果服务器在HTTP标头中指定了一个字符集,它将覆盖您在文档中可以说的任何内容。使用例如标题查看标题 http://www.rexswain.com/httpview.html