Php 数据编码不正确

Php 数据编码不正确,php,codeigniter,utf-8,odbc,filemaker,Php,Codeigniter,Utf 8,Odbc,Filemaker,让我先详细说明当前设置: Windows 10运行IIS 10、PHP 5.6、, 启用ODBC的FileMaker服务器14 我使用的是CodeIgniter 3.0.4,它被配置为使用utf8编码。我的odbc dsn被设置为使用utf8,我在显示“Á”或“ñ”之类的字符时没有任何问题,问题出现在插入数据时 // DATA ARRAY $data = array( "id" => null, "idPregunta" => (int

让我先详细说明当前设置:

Windows 10运行IIS 10、PHP 5.6、, 启用ODBC的FileMaker服务器14

我使用的是CodeIgniter 3.0.4,它被配置为使用utf8编码。我的odbc dsn被设置为使用utf8,我在显示“Á”或“ñ”之类的字符时没有任何问题,问题出现在插入数据时

// DATA ARRAY
$data = array(
            "id" => null,
            "idPregunta" => (int)$idPreg,
            "idEntrevistado" => $entrevistado,
            "Valor" => "íóú",
            "FechaCreacion" => $fecha
            );


// MODEL SCRIPT
$this->db->insert("Respuesta", $data);
显示
$sql=$this->db->set($data)->get_compiled_insert('Respuesta')正确地显示了我插入的数据是我所写的,但在我的数据库中插入的数据是像
ÃÃÃú
。在数据库中不是问题,使用FileMaker Pro直接插入此字符不会显示相同的编码问题

config/database.php

$db['default'] = array(
'dsn'   => 'encuestas',
'hostname' => 'localhost',
'username' => 'IIS',
'password' => '123456',
'database' => 'PollServiceSurveys',
'dbdriver' => 'odbc',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
编辑:


这似乎是ODBC驱动程序的问题,一个快速的解决方法是使用
htmlentities
htmlspecialchars
以前剥离html标记。

您的config/database.php是什么?Javier,一件事是您在屏幕上看到的内容,另一件完全不同的事情是您在数据库中存储的内容。在以不同方式配置的两个客户端上,可以以完全不同的方式显示相同的数据库字节值。由于您想检查数据库中使用的编码,我建议您直接检查数据库中存储的十六进制字节。用于检查数据库内容的软件层越少越好。数据库配置数组是什么样子的?config/database.php是什么?Javier,一件事是你在屏幕上看到的,另一件事是你在数据库中存储的内容。在以不同方式配置的两个客户端上,可以以完全不同的方式显示相同的数据库字节值。由于您想检查数据库中使用的编码,我建议您直接检查数据库中存储的十六进制字节。用于检查数据库内容的软件层越少越好。数据库配置数组的外观如何?