无法显示希腊字符 .mdb 文件(PHP 和 ODBC)
Posted
技术标签:
【中文标题】无法显示希腊字符 .mdb 文件(PHP 和 ODBC)【英文标题】:Cannot display Greek characters .mdb file (PHP & ODBC) 【发布时间】:2012-02-03 21:08:04 【问题描述】:我在显示 MS Access 2007 表中的列中的文本时遇到问题,该表是希腊语。我正在使用 php 和 $dbc = @odbc_pconnect("Driver=Microsoft Access Driver (*.mdb);Dbq=$mdbFilename", $user, $pass);
从本地 .mdb 文件中读取数据。我可以成功读取数据库中的其余拉丁字符数据。当我回显结果时,希腊字符显示为�
。 html 字符集已正确设置为 utf-8。我试过使用 utf8_encode 没有运气。我已经在网上搜索了一段时间没有但无法弄清楚。
任何帮助将不胜感激。
凯瑞斯
【问题讨论】:
【参考方案1】:.mdb
格式,作为 Microsoft 的发明,它不使用 Unicode,而是使用 Windows-
代码页之一。检查哪个是您用于希腊语的,并使用iconv 在编码之间进行转换。
【讨论】:
谢谢伙计。我实际上使用 iconv 从 Windows-1252 转换,因为我认为这是 .mdb 文件的默认设置,但我不认为要为希腊字符寻找不同的代码页。作为记录,对于希腊语,它是 Windows-1253 和 iconv() 完成了这项工作。再次感谢! 太棒了!我花了一些时间弄清楚它一次:) 嘿,伙计。我有另一个相关的问题。虽然结果正确显示在我的本地计算机上(使用 XAMPP),但当我使用 GoDaddy 将网站上传到 Windows 托管计划时,字符再次无法正确显示。显然 iconv() 确实将它们转换为 UTF-8(因为如果我不使用该函数,它们会以不同的方式显示),但这次会显示问号(没有黑色背景颜色)。可能是什么问题呢?也许与我的托管计划有关? 您是否也遇到过来自其他来源的 unicode 字符,或者只有来自数据库的字符? 不!仅适用于数据库中的值。无论如何,页面的其余部分主要是希腊语..【参考方案2】:例如:
echo 'TRANSLIT : ', iconv("Windows-1253", "UTF-8//TRANSLIT", $text);
echo 'IGNORE : ', iconv("Windows-1253", "UTF-8//IGNORE", $text);
echo 'Plain : ', iconv("Windows-1253", "UTF-8", $text);
【讨论】:
以上是关于无法显示希腊字符 .mdb 文件(PHP 和 ODBC)的主要内容,如果未能解决你的问题,请参考以下文章