【问题标题】:Cannot display Greek characters .mdb file (PHP & ODBC)无法显示希腊字符 .mdb 文件(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 没有运气。我已经在网上搜索了一段时间没有但无法弄清楚。

任何帮助将不胜感激。

凯瑞斯

【问题讨论】:

    标签: php ms-access character-encoding odbc


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多