datatables显示查询中的行� 在áéíóúñ

qrjkbowd  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(328)

我准备好了datatables,准备用它来做一个漂亮的表 JQuery 以及 html .
但当我向我的 db 在这种情况下,它会向我显示这样的值(几乎)。

(Spanish letters) áéíóúÑ

任何建议。
添加了使用的数据表代码:

var table = $('#example').DataTable({
  // Localization
  language : {
    emptyTable     : 'Nada para mostrar.',
    zeroRecords    : 'Nada coincide.',
    thousands      : '.',
    processing     : 'Cargando informacion...',
    loadingRecords : 'Cargando Informacion...',
    info           : ' _PAGE_ / _PAGES_',
    infoEmpty      : ' 0 / 0',
    infoFiltered   : '( _MAX_ )',
    infoPostFix    : '',
    lengthMenu     : 'Mostrando _MENU_',
    search         : 'Filtrar:',
    paginate       : {
      first    : 'Primero',
      last     : 'Ultimo',
      next     : 'Siguiente',
      previous : 'Previo'
    }
  }
});jquery
xurqigkl

xurqigkl1#

这个问题的解决方案取决于pdo调用。
我错误地使用了两个不同的调用,其中一个没有使用utf8正确配置就这样调用了

try{
    $pdo = new PDO("mysql:host=".DBHost.";dbname=".DBName."", DBUser, DBPassword);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    } catch(PDOException $e){

      die("ERROR: Could not connect. " . $e->getMessage());

   }

最后当添加正确的utf-8配置时,所有字符都显示良好。

try{
    $pdo = new PDO('mysql:dbname=' . $this->DBName . ';host=' . $this->Host . ';port=' . $this->DBPort . ';charset=utf8', 
            $this->DBUser, 
            $this->DBPassword,
            array(
                //For PHP 5.3.6 or lower
                PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'",
                PDO::ATTR_EMULATE_PREPARES => false,
                //
                //PDO::ATTR_PERSISTENT => true,

                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true
            )
        );

    } catch(PDOException $e){

      die("ERROR: Could not connect. " . $e->getMessage());

   }

最后一个代码解决了这个问题。谢谢!

相关问题