草庐IT

php - UTF-8 : successful conversion to iso-8859-1 but not to iso-8859-2

coder 2024-04-05 原文

我在 MS Access 上有一个数据库,我通过调用 PDO 和 odbc 驱动程序将其与 PHP 一起使用。 我的数据库中有法语、丹麦语和波兰语单词。法语和丹麦语没问题,但波兰语字符没办法,我只得到“?”相反。

代码如下:

    try{
 $db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=$dbName; Uid=Admin;Pwd=;");
  }
  catch(PDOException $e){
    echo $e->getMessage();
  }
  $answer = $db -> query("SELECT * FROM dict_main WHERE ID < 20");
      while($data = $answer-> fetch() ){
          echo iconv("iso-8859-1","utf-8",htmlspecialchars($data['DK'])) . ' ';
          echo iconv("iso-8859-2","utf-8",htmlspecialchars($data['PL'])) . ' ';
          echo iconv("iso-8859-1","utf-8",htmlspecialchars($data['FR'])) . ' ';
        }

如果有人有想法请告诉我,因为我的想法已经用完而且似乎没有任何效果,或者我是否应该提供有关我没有想到的问题的更多信息。

最佳答案

看起来像htmlspecialchars() does not support ISO-8859-2 .所以它可能会在到达 iconv() 之前破坏 $data['PL'] 的内容。

首先尝试将输入字符串转换为 UTF-8,然后将 htmlspecialchars() 应用于 UTF-8 字符串:

echo htmlspecialchars( iconv("iso-8859-2", "utf-8", $data['PL']) );

关于php - UTF-8 : successful conversion to iso-8859-1 but not to iso-8859-2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17494806/

有关php - UTF-8 : successful conversion to iso-8859-1 but not to iso-8859-2的更多相关文章

随机推荐